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

Community realm. Read the code first. Community realm, deployed by its author. Read the code before you interact or send coins.

game33 state

Back to all declarations

order

type

Value

game33.order

hexDigits

untyped string

Value

"0123456789abcdef"

priceKey

func(wantAmt uint64, giveAmt uint64) string

priceKey = want-per-give × 1e12 as a fixed-width 24-hex-digit number (96 bits; amounts ≤ 1e15 keep it \< 2^90). Lexicographic = numeric order, so ascending book keys are the cheapest asks first for takers.

Open
OID
053b6a…4dfb:5
priceKey details

Inspect func

sideEntryLen

untyped bigint

// priceKey(24) + id(12) + maker address(40)

Value

(76 <untyped> bigint)

sideSortLen

untyped bigint

// entries sort by priceKey then id (FIFO within a price)

Value

(36 <untyped> bigint)

maxSideOrders

untyped bigint

// open orders per book side; bounds every string we rewrite

Value

(256 <untyped> bigint)

encodeOrder

func(o *game33.order) string

maker record: id12|give|want|remGive|remWant|expiry|pk

Open
OID
053b6a…4dfb:6
encodeOrder details

Inspect func

decodeOrder

func(maker string, rec string) *game33.order
Open
OID
053b6a…4dfb:7
decodeOrder details

Inspect func

makerRecs

func(maker string) []string
Open
OID
053b6a…4dfb:8
makerRecs details

Inspect func

setMakerRecs

func(maker string, recs []string)
Open
OID
053b6a…4dfb:9
setMakerRecs details

Inspect func

loadOrderOf

func(maker string, id uint64) *game33.order

loadOrderOf finds one of maker's open orders (≤ 20 records scanned).

Open
OID
053b6a…4dfb:10
loadOrderOf details

Inspect func

saveOrder

func(o *game33.order)
Open
OID
053b6a…4dfb:11
saveOrder details

Inspect func

sideKey

func(want string, give string) string
Open
OID
053b6a…4dfb:12
sideKey details

Inspect func

sideEntry

func(o *game33.order) string
Open
OID
053b6a…4dfb:13
sideEntry details

Inspect func

sideSearch

func(s string, key string) int

sideSearch returns the index of the first entry whose sort key is ≥ key.

Open
OID
053b6a…4dfb:15
sideSearch details

Inspect func

sideInsert

func(o *game33.order)
Open
OID
053b6a…4dfb:16
sideInsert details

Inspect func

sideRemove

func(o *game33.order)
Open
OID
053b6a…4dfb:17
sideRemove details

Inspect func

iterSide

func(pay string, get string, fn func(...))

iterSide walks a taker's side (pays \`pay\`, gets \`get\`) best price first.

Open
OID
053b6a…4dfb:18
iterSide details

Inspect func

sideCount

func(pay string, get string) int
Open
OID
053b6a…4dfb:19
sideCount details

Inspect func

grinValueMilli

func(coin string, amt uint64) uint64

grinValueMilli = amt × reference value (milli-grin), saturating at 2^64-1.

Open
OID
053b6a…4dfb:20
grinValueMilli details

Inspect func

openOrderCount

func(maker string) uint64
Open
OID
053b6a…4dfb:21
openOrderCount details

Inspect func

PlaceOrder

func(give string, giveAmt uint64, want string, wantAmt uint64, expirySecs int64) uint64

PlaceOrder escrows giveAmt of \`give\` and lists it for wantAmt of \`want\` (any pair). No upfront posting fee — the 0.90% maker fee is deducted from the maker's proceeds at fill time. Returns the order id. expirySecs 0 = 72 h; max 7 days.

Open
OID
053b6a…4dfb:22
PlaceOrder details

Inspect func

closeOrder

func(o *game33.order, reason string)

closeOrder refunds the remaining escrow to the MAKER (never anyone else) and deletes the order. Every close path goes through here.

Open
OID
053b6a…4dfb:23
closeOrder details

Inspect func

CancelOrder

func(id uint64)

CancelOrder: the maker gets the remaining escrow back. Works while paused and for banned makers; only the maker can cancel.

Open
OID
053b6a…4dfb:24
CancelOrder details

Inspect func

SweepExpiredOrders

func(pay string, get string) int

SweepExpiredOrders closes up to maxScanPerTx expired orders of one book side, refunding each maker. Anyone may call it (also while paused).

Open
OID
053b6a…4dfb:25
SweepExpiredOrders details

Inspect func

fillStep

type

Value

game33.fillStep

planFills

func(caller string, pay string, get string, budget uint64, maxFills int, now int64) ([]game33.fillStep, []*game33.order, uint64, uint64)

planFills walks the book for a taker (read-only). budget is the most the taker will spend INCLUDING the taker fee. Own orders are skipped (no self-match); expired orders are returned for closing.

Open
OID
053b6a…4dfb:26
planFills details

Inspect func

executeFills

func(caller string, pay string, steps []game33.fillStep) uint64

executeFills applies a plan: the taker pays each maker x (plus taker fee), receives g from escrow. The maker receives x minus the 0.90% maker fee (deducted from proceeds, not from escrow). Returns total received by taker.

Open
OID
053b6a…4dfb:27
executeFills details

Inspect func

FillOrders

func(pay string, get string, payAmt uint64, minGet uint64, maxFills int, deadline int64) uint64

FillOrders: spend at most payAmt of \`pay\` (taker fee included) on the best-priced orders that give \`get\`; receive at least minGet or revert. ≤ 10 fills and ≤ 20 scanned entries per call.

Open
OID
053b6a…4dfb:28
FillOrders details

Inspect func

orderJSON

func(o *game33.order) string
Open
OID
053b6a…4dfb:29
orderJSON details

Inspect func

Order

func(maker string, id uint64) string

Order shows one open order of \`maker\` (lookups are per maker by design).

Open
OID
053b6a…4dfb:30
Order details

Inspect func

OrdersOf

func(addr string) string

OrdersOf lists an address's open orders (≤ 20 by construction).

Open
OID
053b6a…4dfb:31
OrdersOf details

Inspect func

BookDepth

func(pay string, get string, limit int, offset int) string

BookDepth lists asks for a taker who pays \`pay\` and gets \`get\`, best price first (≤ 50 rows; offset \< maxSideOrders).

Open
OID
053b6a…4dfb:32
BookDepth details

Inspect func

QuoteFill

func(caller string, pay string, get string, payAmt uint64, maxFills int) string

QuoteFill previews FillOrders for a budget (fee included): {"spent","got"}.

Open
OID
053b6a…4dfb:33
QuoteFill details

Inspect func

hubCoin

untyped string

Value

"grin"

poolFeeBps

uint64

Value

50

protoFeeBps

uint64

Value

15

minLiquidity

uint64

// first-deposit shares burned forever

Value

1000

minOpenDepthGrin

uint64

// a pool takes swaps only once rGrin ≥ this

Value

2000

warmupSecs

int64

// LP fee warm-up (principal always instant)

Value

600

rootKScale

uint64

Value

1000000000

takerFeeBps

uint64

Value

50

makerFeeBps

uint64

Value

90

minOrderGrinX1k

uint64

// 50 grin of value (reference table) — size floor only

Value

50000

maxOpenOrders

uint64

Value

20

defaultExpiry

int64

Value

259200

maxExpiry

int64

Value

604800

maxFillsPerTx

untyped bigint

Value

(10 <untyped> bigint)

maxScanPerTx

untyped bigint

Value

(20 <untyped> bigint)

maxViewLimit

untyped bigint

Value

(50 <untyped> bigint)

maxAmount

uint64

// 1e15

Value

1000000000000000

prefMilli

[7]uint64

Reference value per rarity in milli-grin (RARITY\_VALUE ×1000). Used ONLY for the 50-grin minimum order size — never for prices.

Open
OID
053b6a…4dfb:35
prefMilli details

Inspect array

pools

v0.Tree

// coin → \*pool

Open
OID
053b6a…4dfb:37
pools details

Inspect ref

lpPositions

v0.Tree

// coin+":"+addr → \*lpPos

Open
OID
053b6a…4dfb:39
lpPositions details

Inspect ref

adminFees

v0.Tree

// coin → admin's accrued protocol fees (pull)

Open
OID
053b6a…4dfb:41
adminFees details

Inspect ref

casinoPool

v0.Tree

// coin → casino pool balance (fees in, capped jackpots out)

Open
OID
053b6a…4dfb:43
casinoPool details

Inspect ref

makerBooks

v0.Tree

// maker → ";"-joined compact order records (≤ maxOpenOrders)

Open
OID
053b6a…4dfb:45
makerBooks details

Inspect ref

sides

v0.Tree

// want+">"+give → sorted fixed-width entries (≤ maxSideOrders)

Open
OID
053b6a…4dfb:47
sides details

Inspect ref

openOrderTotal

uint64

Value

0

nextOrderId

uint64

Value

0

exPaused

bool

Value

false

adminFeesWithdrawn

v0.Tree

// coin → lifetime withdrawn by the admin

Open
OID
053b6a…4dfb:52
adminFeesWithdrawn details

Inspect ref

adminGnotWithdrawn

int64

// ugnot withdrawn by WithdrawFunds (≤ passRevenueUgnot)

Value

0

addChk

func(a uint64, b uint64) uint64
Open
OID
053b6a…4dfb:54
addChk details

Inspect func

subChk

func(a uint64, b uint64) uint64
Open
OID
053b6a…4dfb:56
subChk details

Inspect func

mulDiv

func(a uint64, b uint64, c uint64) uint64

mulDiv = floor(a\*b/c) with a 128-bit product; panics if c == 0 or the quotient does not fit in 64 bits.

Open
OID
053b6a…4dfb:57
mulDiv details

Inspect func

mulDivUp

func(a uint64, b uint64, c uint64) uint64

mulDivUp = ceil(a\*b/c).

Open
OID
053b6a…4dfb:58
mulDivUp details

Inspect func

isqrt128

func(a uint64, b uint64) uint64

isqrt128 = floor(sqrt(a\*b)) for the 128-bit product (Newton, bounded).

Open
OID
053b6a…4dfb:59
isqrt128 details

Inspect func

mulLess

func(a uint64, b uint64, c uint64, d uint64) bool

mulLess reports a\*b \< c\*d using 128-bit products.

Open
OID
053b6a…4dfb:61
mulLess details

Inspect func

requireBalance

func(addr string, coin string, amt uint64)

requireBalance checks a balance before any write, so a failing call changes nothing (validate-then-write).

Open
OID
053b6a…4dfb:62
requireBalance details

Inspect func

requireAmount

func(name string, v uint64)
Open
OID
053b6a…4dfb:63
requireAmount details

Inspect func

exchangeCaller

func() string

exchangeCaller returns the caller for exchange writes. Only end users (an EOA MsgCall or the user's own MsgRun) may trade: other realms can't act through the exchange, so there is no cross-realm call surface at all.

Open
OID
053b6a…4dfb:65
exchangeCaller details

Inspect func

requireMarketOpen

func(caller string)

requireMarketOpen gates NEW activity (swaps, deposits, orders, fills). Trading opens only after FinalizeMigration: MigrateBatch SETs balances, so trading before that could duplicate or lose escrowed coins.

Open
OID
053b6a…4dfb:66
requireMarketOpen details

Inspect func

requireDeadline

func(deadline int64)
Open
OID
053b6a…4dfb:67
requireDeadline details

Inspect func

requireCoin

func(coin string) int
Open
OID
053b6a…4dfb:68
requireCoin details

Inspect func

accrueProtocolFee

func(coin string, amt uint64)

accrueProtocolFee splits amt of coin 50/50: the floor half to the admin's fee ledger, the rest to the casino pool. Both stay inside the realm.

Open
OID
053b6a…4dfb:69
accrueProtocolFee details

Inspect func

WithdrawProtocolFees

func(coin string) uint64

WithdrawProtocolFees moves the admin's OWN accrued fees for \`coin\` into the admin's balance. It reads only adminFees (never reserves, escrow, the casino pool or anyone's balance) and works while paused.

Open
OID
053b6a…4dfb:70
WithdrawProtocolFees details

Inspect func

SetExchangePaused

func(p bool)

SetExchangePaused stops NEW swaps, deposits, orders and fills. It can't stop RemoveLiquidity, CancelOrder, SweepExpiredOrders or fee withdrawals.

Open
OID
053b6a…4dfb:71
SetExchangePaused details

Inspect func

ExchangeStatus

func() string
Open
OID
053b6a…4dfb:72
ExchangeStatus details

Inspect func

ProtocolFees

func(coin string) string
Open
OID
053b6a…4dfb:73
ProtocolFees details

Inspect func

DepositGnot

func() uint64

DepositGnot wraps the ugnot attached to this MsgCall into the exchange's internal "gnot" balance, enabling the player to trade or provide GNOT liquidity. Attach the desired ugnot amount to the MsgCall as a send value.

Open
OID
053b6a…4dfb:74
DepositGnot details

Inspect func

WithdrawGnot

func(amtStr string)

WithdrawGnot converts internal "gnot" balance back to real ugnot and sends it to the caller. Works while the exchange is paused — it is an exit, not a trade. Any player can call this for their own balance at any time.

Open
OID
053b6a…4dfb:75
WithdrawGnot details

Inspect func

gnotPools

v0.Tree

// coin → \*pool (reuses the pool struct from exchange\_pool.gno)

Open
OID
053b6a…4dfb:77
gnotPools details

Inspect ref

gnotLpPositions

v0.Tree

// coin+":"+addr → \*lpPos

Open
OID
053b6a…4dfb:79
gnotLpPositions details

Inspect ref

gnotPool

func(coin string) *game33.pool

gnotPool returns the COIN/GNOT pool for coin, panicking if it doesn't exist.

Open
OID
053b6a…4dfb:80
gnotPool details

Inspect func

OpenGnotPool

func(coin string, coinAmt uint64, gnotAmt uint64, minShares uint64, deadline int64) uint64

OpenGnotPool creates a new COIN/GNOT pool and seeds the first liquidity, atomically setting the opening price. Any player who holds the coin and enough deposited GNOT can call this — no admin required. coinAmt/gnotAmt set the price ratio; whoever opens the pool first controls the opening price. 1,000 shares are permanently burned as a seed.

Open
OID
053b6a…4dfb:82
OpenGnotPool details

Inspect func

AddGnotLiquidity

func(coin string, coinMax uint64, gnotMax uint64, minShares uint64, deadline int64) uint64

AddGnotLiquidity deposits up to coinMax of \`coin\` and gnotMax internal GNOT. Follows the current pool ratio. Reverts unless at least minShares are minted.

Open
OID
053b6a…4dfb:83
AddGnotLiquidity details

Inspect func

RemoveGnotLiquidity

func(coin string, shares uint64, minCoin uint64, minGnot uint64, deadline int64) (uint64, uint64)

RemoveGnotLiquidity is always available — works while the exchange or pool is paused. Returns (coinOut, gnotOut).

Open
OID
053b6a…4dfb:84
RemoveGnotLiquidity details

Inspect func

poolSwapGnot

func(p *game33.pool, inIsHub bool, amountIn uint64) uint64

poolSwapGnot executes one hop (coin↔gnot) for internal routing. The caller's input must already have been debited.

Open
OID
053b6a…4dfb:85
poolSwapGnot details

Inspect func

GnotBalance

func(addr string) string

GnotBalance returns the caller's internal GNOT balance (deposited ugnot).

Open
OID
053b6a…4dfb:86
GnotBalance details

Inspect func

GnotPoolInfo

func(coin string) string

GnotPoolInfo returns the state of the COIN/GNOT pool for \`coin\`.

Open
OID
053b6a…4dfb:87
GnotPoolInfo details

Inspect func

GnotPools

func(limit int, offset int) string

GnotPools lists COIN/GNOT pools (paginated, ≤ 50 per call).

Open
OID
053b6a…4dfb:88
GnotPools details

Inspect func

QuoteGnotSwap

func(coinIn string, coinOut string, amountIn uint64) string

QuoteGnotSwap quotes a single GNOT-pool swap; "0" if unavailable.

Open
OID
053b6a…4dfb:89
QuoteGnotSwap details

Inspect func

GnotLpPosition

func(coin string, addr string) string

GnotLpPosition shows one GNOT LP position and current withdrawal value.

Open
OID
053b6a…4dfb:90
GnotLpPosition details

Inspect func

GnotLpPositions

func(addr string, limit int, offset int) string

GnotLpPositions lists all GNOT LP positions for an address (paginated).

Open
OID
053b6a…4dfb:91
GnotLpPositions details

Inspect func

pool

type

Value

game33.pool

lpPos

type

Value

game33.lpPos

getPool

func(coin string) *game33.pool
Open
OID
053b6a…4dfb:92
getPool details

Inspect func

rootKPerShare

func(p *game33.pool) uint64
Open
OID
053b6a…4dfb:94
rootKPerShare details

Inspect func

CreatePool

func(coin string)

CreatePool opens an empty COIN/GRIN pool (admin, per the launch schedule). It holds nothing until players deposit; the admin can't deposit for anyone, withdraw from it or close it.

Open
OID
053b6a…4dfb:95
CreatePool details

Inspect func

OpenPool

func(coin string, coinAmt uint64, grinAmt uint64, minShares uint64, deadline int64) uint64

OpenPool creates a new COIN/GRIN pool and immediately deposits the first liquidity, atomically setting the opening price. Any player who holds the coin and enough Grin can call this — no admin required. coinAmt and grinAmt set the price ratio; whoever calls this first for a coin controls the opening price, so choose amounts that reflect the coin's real value. 1,000 shares are permanently burned as a sandwich-resistance seed. Returns the number of LP shares minted for the caller.

Open
OID
053b6a…4dfb:96
OpenPool details

Inspect func

SetPoolPaused

func(coin string, p bool)

SetPoolPaused stops new swaps and deposits on one pool. Withdrawals stay open.

Open
OID
053b6a…4dfb:97
SetPoolPaused details

Inspect func

AddLiquidity

func(coin string, coinMax uint64, grinMax uint64, minShares uint64, deadline int64) uint64

AddLiquidity deposits up to coinMax of \`coin\` and grinMax grin. The first deposit sets the price (open economy: any ratio) and burns minLiquidity shares; later deposits take the current ratio (never more than either cap). Reverts unless at least minShares are minted.

Open
OID
053b6a…4dfb:98
AddLiquidity details

Inspect func

lpPayout

func(p *game33.pool, pos *game33.lpPos, shares uint64, now int64) (uint64, uint64)

lpPayout computes what \`shares\` of a position withdraw right now: pro-rata of CURRENT reserves (floor). Within the warm-up the fee growth since entry (√k/share above entry) stays in the pool for the other LPs; principal is never cut below its entry-value share.

Open
OID
053b6a…4dfb:99
lpPayout details

Inspect func

RemoveLiquidity

func(coin string, shares uint64, minCoin uint64, minGrin uint64, deadline int64) (uint64, uint64)

RemoveLiquidity is instant and ALWAYS available: it works while the exchange or the pool is paused, before or after a ban, and needs no tool. Nobody but the position owner can call it for that position.

Open
OID
053b6a…4dfb:100
RemoveLiquidity details

Inspect func

poolQuote

func(p *game33.pool, inIsHub bool, amountIn uint64) (uint64, uint64)

poolQuote returns (out, protoFee) for amountIn of the input side; no writes.

Open
OID
053b6a…4dfb:101
poolQuote details

Inspect func

poolOpenForSwaps

func(p *game33.pool) bool
Open
OID
053b6a…4dfb:102
poolOpenForSwaps details

Inspect func

poolSwap

func(p *game33.pool, inIsHub bool, amountIn uint64) uint64

poolSwap executes one hop (coin↔grin) for \`caller\`, crediting nothing to the caller: it returns the output so routes can chain hops. The caller's input must already have been debited.

Open
OID
053b6a…4dfb:103
poolSwap details

Inspect func

SwapExactIn

func(coinIn string, coinOut string, amountIn uint64, minOut uint64, deadline int64) uint64

SwapExactIn swaps amountIn of coinIn for at least minOut of coinOut through one pool (one side must be grin). For X→Y via grin use SwapRoute.

Open
OID
053b6a…4dfb:104
SwapExactIn details

Inspect func

poolJSON

func(p *game33.pool) string
Open
OID
053b6a…4dfb:105
poolJSON details

Inspect func

PoolInfo

func(coin string) string
Open
OID
053b6a…4dfb:106
PoolInfo details

Inspect func

Pools

func(limit int, offset int) string

Pools lists pools in coin order (paginated, ≤ 50 per call).

Open
OID
053b6a…4dfb:107
Pools details

Inspect func

QuoteSwap

func(coinIn string, coinOut string, amountIn uint64) string

QuoteSwap quotes a single-pool swap; "0" if the pool can't take it.

Open
OID
053b6a…4dfb:108
QuoteSwap details

Inspect func

LpPosition

func(coin string, addr string) string

LpPosition shows one position and what it would withdraw right now.

Open
OID
053b6a…4dfb:109
LpPosition details

Inspect func

LpPositions

func(addr string, limit int, offset int) string

LpPositions lists an address's positions (bounded: at most one per pool, paginated by pool order, ≤ 50 pools scanned per call).

Open
OID
053b6a…4dfb:110
LpPositions details

Inspect func

poolPathOut

func(coinIn string, coinOut string, amountIn uint64) (uint64, bool)

poolPathOut quotes amountIn of coinIn → coinOut through the grin pools (one hop if either side is grin, else coinIn→grin→coinOut). ok=false if a needed pool is missing or not open. Read-only.

Open
OID
053b6a…4dfb:111
poolPathOut details

Inspect func

gnotPathOut

func(coinIn string, coinOut string, amountIn uint64) (uint64, bool)

gnotPathOut quotes amountIn of coinIn → coinOut through GNOT pools. Handles: gnot↔coin (one GNOT pool hop), coin↔coin via gnot hub (two hops). Read-only; ok=false if no suitable GNOT pool exists or is open.

Open
OID
053b6a…4dfb:113
gnotPathOut details

Inspect func

bestPathOut

func(coinIn string, coinOut string, amountIn uint64) (uint64, bool)

bestPathOut returns the best available output from either GRIN or GNOT pools. Read-only; used by routePlanAny for GNOT-aware routing.

Open
OID
053b6a…4dfb:114
bestPathOut details

Inspect func

routePlan

func(caller string, coinIn string, coinOut string, amountIn uint64, maxFills int, now int64) ([]game33.fillStep, []*game33.order, uint64, uint64, uint64)

routePlan splits amountIn between book fills (direct pair) and the pool path. A book fill is taken while its rate is at least the pool path's average rate for the whole remainder; everything else goes to the pools.

Open
OID
053b6a…4dfb:115
routePlan details

Inspect func

SwapRoute

func(coinIn string, coinOut string, amountIn uint64, minOut uint64, maxFills int, deadline int64) uint64

SwapRoute swaps up to amountIn of coinIn for at least minOut of coinOut, using the order book (direct pair) while it beats the pools and the grin pools for the rest. Coins not needed are never debited.

Open
OID
053b6a…4dfb:116
SwapRoute details

Inspect func

QuoteRoute

func(caller string, coinIn string, coinOut string, amountIn uint64, maxFills int) string

QuoteRoute previews SwapRoute: how much goes to the book vs the pools and the expected output (fees included).

Open
OID
053b6a…4dfb:117
QuoteRoute details

Inspect func

requireCoinOrGnot

func(coin string)

requireCoinOrGnot validates a coin for GNOT-aware routes.

Open
OID
053b6a…4dfb:118
requireCoinOrGnot details

Inspect func

gnotRoutePlan

func(caller string, coinIn string, coinOut string, amountIn uint64, maxFills int, now int64) ([]game33.fillStep, []*game33.order, uint64, uint64, uint64)

gnotRoutePlan is routePlan extended to also check GNOT pools. It uses bestPathOut (max of GRIN and GNOT pool outputs) for the pool comparison.

Open
OID
053b6a…4dfb:119
gnotRoutePlan details

Inspect func

executeGnotPoolSwap

func(coinIn string, coinOut string, poolIn uint64) uint64

executeGnotPoolSwap executes the pool leg of a GNOT-aware swap, choosing the better route (GRIN or GNOT pools) for the given pair.

Open
OID
053b6a…4dfb:120
executeGnotPoolSwap details

Inspect func

SwapRouteGnot

func(coinIn string, coinOut string, amountIn uint64, minOut uint64, maxFills int, deadline int64) uint64

SwapRouteGnot swaps coinIn for coinOut where either side may be "gnot". Uses the order book first (same as SwapRoute) then the best available pool (GRIN or GNOT, whichever gives better output).

Open
OID
053b6a…4dfb:121
SwapRouteGnot details

Inspect func

QuoteRouteGnot

func(caller string, coinIn string, coinOut string, amountIn uint64, maxFills int) string

QuoteRouteGnot previews SwapRouteGnot (either side may be "gnot").

Open
OID
053b6a…4dfb:122
QuoteRouteGnot details

Inspect func

TransferAdmin

func(newAdmin string)

TransferAdmin hands the admin role to another address.

Open
OID
053b6a…4dfb:127
TransferAdmin details

Inspect func

transferAdmin

func(newAdmin string)
Open
OID
053b6a…4dfb:128
transferAdmin details

Inspect func

UpdateConfig

func(newAdmin string)

UpdateConfig is kept for game27/28 API compatibility (= TransferAdmin).

Open
OID
053b6a…4dfb:129
UpdateConfig details

Inspect func

SetClaimSigner

func(pubKeyHex string)

SetClaimSigner registers the ed25519 public key (64 hex chars) of the server's claim signer. Pass "" to disable all vouchered calls (kill switch).

Open
OID
053b6a…4dfb:130
SetClaimSigner details

Inspect func

requireNotPaused

func()
Open
OID
053b6a…4dfb:135
requireNotPaused details

Inspect func

BanAddress

func(targetAddr string, reason string, durationSecs int64)

BanAddress bans a player address. durationSecs=0 means permanent.

Open
OID
053b6a…4dfb:136
BanAddress details

Inspect func

UnbanAddress

func(targetAddr string)
Open
OID
053b6a…4dfb:137
UnbanAddress details

Inspect func

BlacklistStatus

func(addr string) string
Open
OID
053b6a…4dfb:138
BlacklistStatus details

Inspect func

isBlacklisted

func(addr string) bool
Open
OID
053b6a…4dfb:139
isBlacklisted details

Inspect func

requirePlayer

func() string
Open
OID
053b6a…4dfb:140
requirePlayer details

Inspect func

veinMax

func(coinId string) uint64
Open
OID
053b6a…4dfb:141
veinMax details

Inspect func

veinMintedOf

func(coinId string) uint64
Open
OID
053b6a…4dfb:142
veinMintedOf details

Inspect func

takeFromVein

func(coinId string, amt uint64) uint64

takeFromVein returns how much of amt can still be minted for coinId and records it as minted.

Open
OID
053b6a…4dfb:143
takeFromVein details

Inspect func

SetVeinMax

func(coinId string, maxSupply string)

SetVeinMax overrides a coin's vein size. It can't go below what was minted.

Open
OID
053b6a…4dfb:144
SetVeinMax details

Inspect func

setVeinMax

func(coinId string, maxSupply string)
Open
OID
053b6a…4dfb:145
setVeinMax details

Inspect func

RegisterVein

func(coinId string, maxSupply string)

RegisterVein is the game28 name for SetVeinMax.

Open
OID
053b6a…4dfb:146
RegisterVein details

Inspect func

VeinSupply

func(coinId string) string
Open
OID
053b6a…4dfb:147
VeinSupply details

Inspect func

SetPassPrice

func(ugnotPer30Days int64)

SetPassPrice sets the ugnot price per 30-day period.

Open
OID
053b6a…4dfb:148
SetPassPrice details

Inspect func

ActivateGnomePass

func(durationDays int64)

ActivateGnomePass buys durationDays (30..360, multiple of 30) of Gnome Pass. The tx must attach exactly passPrice × durationDays/30 ugnot (MsgCall send).

Open
OID
053b6a…4dfb:150
ActivateGnomePass details

Inspect func

GnomePassExpiry

func(addr string) int64
Open
OID
053b6a…4dfb:151
GnomePassExpiry details

Inspect func

HasActivePass

func(addr string) bool
Open
OID
053b6a…4dfb:152
HasActivePass details

Inspect func

GnomePassCount

func() int
Open
OID
053b6a…4dfb:153
GnomePassCount details

Inspect func

TreasuryBalance

func() int64

TreasuryBalance returns the ugnot held by this realm (pass revenue not yet withdrawn).

Open
OID
053b6a…4dfb:155
TreasuryBalance details

Inspect func

WithdrawFunds

func(to string, amountUgnot int64)

WithdrawFunds sends GNOT the admin is OWED — Gnome Pass revenue not yet withdrawn — to \`to\`. It can never touch other ugnot the realm holds (donations, anything a future feature would hold for players).

Open
OID
053b6a…4dfb:156
WithdrawFunds details

Inspect func

WithdrawableFunds

func() int64

WithdrawableFunds = pass revenue the admin may still withdraw (ugnot).

Open
OID
053b6a…4dfb:157
WithdrawableFunds details

Inspect func

MigrateBatch

func(batchId string, kind string, rowsJson string) int

── Migration (game31 → game32) ────────────────────────────────────────────── MigrateBatch(batchId, kind, rowsJson) imports one batch. rowsJson is a JSON array of string arrays. Kinds and row shapes: balance [addr, coinId, amount] → balances (SET, not add) lifetime [addr, coinId, amount] → lifetimeMined (SET) + miners total tools [addr, "t1,t2,..."] → ownedTools (SET, unknown ids dropped) toollife [addr, toolId, life] → toolLife (SET, clamped to max) skill [addr, skillId, rank] → skillRanks (SET, clamped to max) medal [addr, achievementId] → achievements (allowlisted ids only) pass [addr, expiryUnix] → gnomePasses (SET) guild [guildId, name, leader, "m1,m2,..."] → guilds + members ban [addr, reason, expiryUnix] → blacklist (expiry 0 = permanent) A batchId that was already applied is skipped, and every write is a SET, so re-running a whole migration is a no-op. FinalizeMigration locks it forever. Every unique player address in a batch is recorded in migrationAddrs so that MigrationStatus can report how many distinct players were migrated.

Open
OID
053b6a…4dfb:158
MigrateBatch details

Inspect func

FinalizeMigration

func()
Open
OID
053b6a…4dfb:159
FinalizeMigration details

Inspect func

MigrationStatus

func() string

MigrationStatus returns a JSON object with: - finalized: bool — true once FinalizeMigration has been called - batches: int — number of distinct batch IDs applied - addresses: int — number of distinct player addresses migrated across all batches

Open
OID
053b6a…4dfb:160
MigrationStatus details

Inspect func

MigrationBatch

func(batchId string) string
Open
OID
053b6a…4dfb:161
MigrationBatch details

Inspect func

migrateRow

func(kind string, r []string) bool
Open
OID
053b6a…4dfb:163
migrateRow details

Inspect func

casinoBets

v0.Tree

// roundId+":"+addr → \*casinoBet

Open
OID
053b6a…4dfb:165
casinoBets details

Inspect ref

casinoReserved

v0.Tree

// coin → largest net payouts of unsettled bets (string)

Open
OID
053b6a…4dfb:167
casinoReserved details

Inspect ref

casinoDay

v0.Tree

// coin → "day:snapshot:paid:received" (UTC day)

Open
OID
053b6a…4dfb:169
casinoDay details

Inspect ref

casinoWinRange

uint64

// winning rolls per pick (of 100) for flip/wheel

Value

49

rpsWinBelow

uint64

// rps: roll \< 33 player wins

Value

33

rpsPushBelow

uint64

// rps: 33..64 push

Value

65

casinoBetWindowSec

int64

// a committed round takes its bet within 1 h

Value

3600

casinoSeedTimeoutSec

int64

// refunds open 30 min after the bet if s is never revealed

Value

1800

casinoSecretTimeoutSec

int64

// the bet forfeits 24 h after s if c is never revealed

Value

86400

casinoMaxBetBps

uint64

// flip / wheel / rps bet ≤ 0.5% of the free pool

Value

50

slotsMaxBetPPM

uint64

// slots bet ≤ 0.004% of the free pool

Value

40

casinoOpenBps

uint64

// open reservations on a coin ≤ 20% of the pool

Value

2000

casinoDayBps

uint64

// daily net payout ≤ 10% of the day's snapshot

Value

1000

casinoMinPoolMilli

uint64

// ≥ 20,000 grin-equivalent …

Value

20000000

casinoMinPoolUnits

uint64

// … and ≥ 200 units of the coin

Value

200

casinoMaxAmount

uint64

Value

1000000000

casinoRefMilli

[7]uint64

Reference value per unit by rarity, in milli-grin (same table as the exchange plan): only used for the pool's opening threshold.

Open
OID
053b6a…4dfb:171
casinoRefMilli details

Inspect array

casinoRound

type

Value

game33.casinoRound

casinoBet

type

Value

game33.casinoBet

isOperator

func() bool

isOperator: the casino operator key commits and reveals server seeds. Once an operator is set, only that key can; the admin (treasury) key only stands in while no operator has been named yet (bootstrap and tests).

Open
OID
053b6a…4dfb:172
isOperator details

Inspect func

SetOperator

func(addr string)

SetOperator lets the admin name the server account that commits and reveals casino seeds. It must be its own key, never the admin/treasury key. The operator can't move anyone's coins.

Open
OID
053b6a…4dfb:174
SetOperator details

Inspect func

casinoStats

v0.Tree

// coin:field or coin:game:field → uint (string)

Open
OID
053b6a…4dfb:177
casinoStats details

Inspect ref

casStat

func(coin string, game string, field string, add uint64)
Open
OID
053b6a…4dfb:178
casStat details

Inspect func

casRecord

func(coin string, game string, staked uint64, paid uint64)
Open
OID
053b6a…4dfb:179
casRecord details

Inspect func

CasinoStats

func(coinId string) string

CasinoStats reports a coin's accounting: pool, reserved, jackpots, seeded, staked, paid, the conservation check and per-game rounds/staked/paid.

Open
OID
053b6a…4dfb:180
CasinoStats details

Inspect func

casGet

func(t *v0.Tree, key string) uint64
Open
OID
053b6a…4dfb:181
casGet details

Inspect func

casSet

func(t *v0.Tree, key string, v uint64)
Open
OID
053b6a…4dfb:182
casSet details

Inspect func

casAdd

func(a uint64, b uint64) uint64
Open
OID
053b6a…4dfb:183
casAdd details

Inspect func

casSub

func(a uint64, b uint64) uint64
Open
OID
053b6a…4dfb:184
casSub details

Inspect func

casMulDiv

func(a uint64, b uint64, c uint64) uint64

casMulDiv = floor(a\*b/c) with a 128-bit product.

Open
OID
053b6a…4dfb:185
casMulDiv details

Inspect func

casMul

func(a uint64, b uint64) uint64
Open
OID
053b6a…4dfb:186
casMul details

Inspect func

casBalOf

func(addr string, coin string) uint64
Open
OID
053b6a…4dfb:188
casBalOf details

Inspect func

casCredit

func(addr string, coin string, amt uint64)
Open
OID
053b6a…4dfb:189
casCredit details

Inspect func

casDebit

func(addr string, coin string, amt uint64)
Open
OID
053b6a…4dfb:190
casDebit details

Inspect func

casGrinValueMilli

func(coin string, amt uint64) uint64
Open
OID
053b6a…4dfb:191
casGrinValueMilli details

Inspect func

casIsHex64

func(s string) bool
Open
OID
053b6a…4dfb:192
casIsHex64 details

Inspect func

casSafe

func(s string, maxLen int) bool

casSafe: a short \[A-Za-z0-9\_.-] token (no quotes, so it is JSON-safe).

Open
OID
053b6a…4dfb:193
casSafe details

Inspect func

sha256Hex

func(s string) string
Open
OID
053b6a…4dfb:194
sha256Hex details

Inspect func

CasinoRoll

func(serverSeed string, clientSecret string, roundId string, game string) uint64

CasinoRoll is the on-chain roll: uint32(sha256(s:c:roundId:game)\[0:4]) % 100.

Open
OID
053b6a…4dfb:195
CasinoRoll details

Inspect func

CasinoOutcome

func(game string, roll uint64) string

CasinoOutcome maps a roll to what landed. For rps the outcome is "win" | "push" | "lose" (see rpsHouseMove for the move shown).

Open
OID
053b6a…4dfb:196
CasinoOutcome details

Inspect func

rpsHouseMove

func(choice string, outcome string) string

rpsHouseMove: the house move that produces the outcome against the player's move.

Open
OID
053b6a…4dfb:197
rpsHouseMove details

Inspect func

validCasinoChoice

func(game string, choice string) bool
Open
OID
053b6a…4dfb:198
validCasinoChoice details

Inspect func

casinoExposure

func(game string, amt uint64) uint64

casinoExposure: the largest net amount a bet can take from the pool.

Open
OID
053b6a…4dfb:199
casinoExposure details

Inspect func

casinoDayState

func(coin string) (int64, uint64, uint64, uint64)
Open
OID
053b6a…4dfb:201
casinoDayState details

Inspect func

setCasinoDay

func(coin string, day int64, snap uint64, paid uint64, recv uint64)
Open
OID
053b6a…4dfb:202
setCasinoDay details

Inspect func

casinoIsOpen

func(coin string, pool uint64) bool
Open
OID
053b6a…4dfb:203
casinoIsOpen details

Inspect func

casinoMaxBet

func(game string, free uint64) uint64
Open
OID
053b6a…4dfb:204
casinoMaxBet details

Inspect func

casinoCheckBet

func(coin string, game string, amt uint64)

casinoCheckBet panics unless the pool can pay the bet's largest win in full (read-only).

Open
OID
053b6a…4dfb:205
casinoCheckBet details

Inspect func

casinoReserve

func(coin string, exp uint64)
Open
OID
053b6a…4dfb:206
casinoReserve details

Inspect func

casinoSettle

func(addr string, coin string, amt uint64, exposure uint64, payout uint64) uint64

casinoSettle releases the reservation and moves coins: the player receives \`payout\` (0 ≤ payout ≤ stake + exposure) and the pool keeps the rest of the stake or pays the difference. Returns payout.

Open
OID
053b6a…4dfb:207
casinoSettle details

Inspect func

SeedCasinoPool

func(coinId string, amount string)

SeedCasinoPool moves the ADMIN'S OWN on-chain coins into a casino pool. Only ever the admin's own balance; nobody can withdraw a pool back.

Open
OID
053b6a…4dfb:208
SeedCasinoPool details

Inspect func

CasinoPool

func(coinId string) string

CasinoPool reports a coin's pool, reservation, max bets and daily counters.

Open
OID
053b6a…4dfb:209
CasinoPool details

Inspect func

casinoGrants

v0.Tree

// addr → \*freeSpinGrant

Open
OID
053b6a…4dfb:211
casinoGrants details

Inspect ref

casinoJackpot

v0.Tree

// coin:tier → pool (string)

Open
OID
053b6a…4dfb:213
casinoJackpot details

Inspect ref

casinoJpDust

v0.Tree

// coin:tier → contribution remainder in bet×bps units (string)

Open
OID
053b6a…4dfb:215
casinoJpDust details

Inspect ref

casinoJpSeed

v0.Tree

// coin:tier → reset seed (string)

Open
OID
053b6a…4dfb:217
casinoJpSeed details

Inspect ref

casinoJpRef

v0.Tree

// coin → reference bet (string)

Open
OID
053b6a…4dfb:219
casinoJpRef details

Inspect ref

freeSpinMult

uint64

Value

2

jpMajorBps

uint64

// 1.0% of each paid slots stake

Value

100

jpGrandBps

uint64

// 0.5%

Value

50

jpDefaultRefBet

uint64

Value

100

jpResetFreeMultiple

uint64

Value

20

hsMiniMult

uint64

Value

20

hsMinorMult

uint64

Value

75

freeSpinGrant

type

Value

game33.freeSpinGrant

getGrant

func(addr string) *game33.freeSpinGrant
Open
OID
053b6a…4dfb:220
getGrant details

Inspect func

jpKey

func(coin string, tier string) string
Open
OID
053b6a…4dfb:222
jpKey details

Inspect func

jpRefBet

func(coin string) uint64
Open
OID
053b6a…4dfb:223
jpRefBet details

Inspect func

casinoJackpotContribute

func(coin string, amt uint64)

casinoJackpotContribute moves 1.0% / 0.5% of a paid slots stake from the house pool into the MAJOR / GRAND pools (remainders carried, nothing rounded away).

Open
OID
053b6a…4dfb:224
casinoJackpotContribute details

Inspect func

casinoJackpotPay

func(addr string, coin string, tier string, bet uint64) uint64

casinoJackpotPay pays a jackpot tier to addr: pool × min(1, bet/refBet).

Open
OID
053b6a…4dfb:225
casinoJackpotPay details

Inspect func

slotsHSPayout

func(tiles *[20]uint16, full bool) (uint64, bool, bool)

slotsHSPayout turns Hold & Spin tiles into bet multiples (under the cap) and the jackpot tiers won (paid from their pools).

Open
OID
053b6a…4dfb:226
slotsHSPayout details

Inspect func

PlaceCasinoFreeSpin

func(roundId string, clientHash string)

PlaceCasinoFreeSpin uses one free spin of the caller's grant in a committed round (no stake). One free spin in flight at a time.

Open
OID
053b6a…4dfb:227
PlaceCasinoFreeSpin details

Inspect func

settleFreeSpin

func(b *game33.casinoBet, win uint64) uint64

settleFreeSpin pays a free spin's win out of its grant's reservation.

Open
OID
053b6a…4dfb:228
settleFreeSpin details

Inspect func

FreeSpinGrant

func(addr string) string

FreeSpinGrant reports a player's open free spins (null when none).

Open
OID
053b6a…4dfb:229
FreeSpinGrant details

Inspect func

CasinoJackpots

func(coinId string) string

CasinoJackpots reports the real MAJOR / GRAND pools and how they pay.

Open
OID
053b6a…4dfb:230
CasinoJackpots details

Inspect func

validJpTier

func(tier string) bool
Open
OID
053b6a…4dfb:231
validJpTier details

Inspect func

SeedCasinoJackpot

func(coinId string, tier string, amount string)

SeedCasinoJackpot adds the ADMIN'S OWN coins to a jackpot pool (never withdrawable).

Open
OID
053b6a…4dfb:232
SeedCasinoJackpot details

Inspect func

SetCasinoJackpotSeed

func(coinId string, tier string, amount string)

SetCasinoJackpotSeed sets the level a jackpot is topped back up to after a hit.

Open
OID
053b6a…4dfb:233
SetCasinoJackpotSeed details

Inspect func

SetCasinoJackpotRefBet

func(coinId string, amount string)

SetCasinoJackpotRefBet sets the bet that wins a full jackpot (smaller bets win the same share of the pool as their share of this bet).

Open
OID
053b6a…4dfb:234
SetCasinoJackpotRefBet details

Inspect func

getCasinoRound

func(id string) *game33.casinoRound
Open
OID
053b6a…4dfb:235
getCasinoRound details

Inspect func

mustCasinoRound

func(id string) *game33.casinoRound
Open
OID
053b6a…4dfb:237
mustCasinoRound details

Inspect func

casinoRoundBet

func(r *game33.casinoRound, roundId string) *game33.casinoBet
Open
OID
053b6a…4dfb:238
casinoRoundBet details

Inspect func

CommitCasinoSeed

func(roundId string, player string, seedHash string)

CommitCasinoSeed opens a round for one player with sha256(s). Operator only; a round id can be used once.

Open
OID
053b6a…4dfb:239
CommitCasinoSeed details

Inspect func

PlaceCasinoBet

func(roundId string, game string, coinId string, betAmount string, choice string, clientHash string)

PlaceCasinoBet escrows the player's bet with sha256(c): only the round's player, only before s is revealed, and only if the pool can pay its largest win.

Open
OID
053b6a…4dfb:240
PlaceCasinoBet details

Inspect func

RevealCasinoSeed

func(roundId string, serverSeed string)

RevealCasinoSeed publishes s (it must hash to the commit). It settles nothing: the bet settles when the player's secret is revealed.

Open
OID
053b6a…4dfb:241
RevealCasinoSeed details

Inspect func

RevealCasinoSecret

func(roundId string, clientSecret string)

RevealCasinoSecret publishes the player's secret c (anyone may relay it: it must hash to the bet's hash) and settles the bet on chain. Works while paused.

Open
OID
053b6a…4dfb:242
RevealCasinoSecret details

Inspect func

casinoResolve

func(roundId string, r *game33.casinoRound, b *game33.casinoBet)

casinoResolve rolls the bet from s and c, pays it, and records the result.

Open
OID
053b6a…4dfb:243
casinoResolve details

Inspect func

RefundCasinoBet

func(roundId string)

RefundCasinoBet returns the stake only if s was never revealed and 30 minutes have passed since the bet. Never after s is revealed. Works while paused.

Open
OID
053b6a…4dfb:244
RefundCasinoBet details

Inspect func

ForfeitCasinoBet

func(roundId string)

ForfeitCasinoBet settles a bet as a loss when s was revealed but the player's secret was not within 24 h (only the player could know the result). Anyone.

Open
OID
053b6a…4dfb:245
ForfeitCasinoBet details

Inspect func

CasinoRound

func(roundId string) string
Open
OID
053b6a…4dfb:246
CasinoRound details

Inspect func

CasinoBet

func(roundId string, addr string) string

CasinoBet returns one player's bet and its on-chain result.

Open
OID
053b6a…4dfb:247
CasinoBet details

Inspect func

JackpotPool

func(coinId string) string

JackpotPool reports the GRAND jackpot pool (the casino bankroll is CasinoPool).

Open
OID
053b6a…4dfb:248
JackpotPool details

Inspect func

CasinoHistory

func(string) string
Open
OID
053b6a…4dfb:249
CasinoHistory details

Inspect func

realmPkgPath

untyped string

Value

"gno.land/r/g1algwpj0dch4stpy7pd87n7a3cwx3pjymlpexn7/game33"

admin

.uverse.address

// deployer; can set roles, prices, veins, migrate, withdraw

Value

<gnolang.StringValue>

operator

.uverse.address

// server hot account for casino seeds (defaults to admin)

Value

<gnolang.StringValue>

claimSignerPubKey

[]uint8

Value

<zero>

claimNonces

v0.Tree

// addr → last used voucher nonce (decimal string)

Open
OID
053b6a…4dfb:254
claimNonces details

Inspect ref

balances

v0.Tree

// addr+":"+coinId → amount string

Open
OID
053b6a…4dfb:256
balances details

Inspect ref

claimBuckets

v0.Tree

// addr → "m0:t0|m1:t1|m2:t2|m3:t3|m4:t4|m5:t5|m6:t6" (packed; lazy-migrated from old addr:r keys)

Open
OID
053b6a…4dfb:258
claimBuckets details

Inspect ref

veinMinted

v0.Tree

// coinId → total ever credited by claims/rewards/migration

Open
OID
053b6a…4dfb:260
veinMinted details

Inspect ref

veinMaxOverride

v0.Tree

// coinId → admin-set max (overrides the rarity default)

Open
OID
053b6a…4dfb:262
veinMaxOverride details

Inspect ref

veinOverrideActive

bool

// true once any SetVeinMax has been called; gates the veinMaxOverride AVL read

Value

false

casinoRounds

v0.Tree

// roundId → \*casinoRound

Open
OID
053b6a…4dfb:265
casinoRounds details

Inspect ref

pvpLobbies

v0.Tree

// lobbyId and lobbyId+":field" → string (see game\_pvp.gno)

Open
OID
053b6a…4dfb:267
pvpLobbies details

Inspect ref

pvpWagers

v0.Tree

// lobbyId → "coinId:amount:creator:challenger"

Open
OID
053b6a…4dfb:269
pvpWagers details

Inspect ref

ownedTools

v0.Tree

// addr → comma-separated tool IDs

Open
OID
053b6a…4dfb:271
ownedTools details

Inspect ref

toolLife

v0.Tree

// addr+":"+toolId → remaining life string

Open
OID
053b6a…4dfb:273
toolLife details

Inspect ref

lifetimeMined

v0.Tree

// addr+":"+coinId → total mined string (real claims only)

Open
OID
053b6a…4dfb:275
lifetimeMined details

Inspect ref

rewarded

v0.Tree

// addr+":"+coinId → total credited by rewards (medals etc.)

Open
OID
053b6a…4dfb:277
rewarded details

Inspect ref

achievements

v0.Tree

// addr+":"+achId → "1"

Open
OID
053b6a…4dfb:279
achievements details

Inspect ref

dailyCheckins

v0.Tree

// addr → unix seconds string

Open
OID
053b6a…4dfb:281
dailyCheckins details

Inspect ref

skillRanks

v0.Tree

// addr+":"+skillId → rank string

Open
OID
053b6a…4dfb:283
skillRanks details

Inspect ref

miners

v0.Tree

// addr → total mined all-time string

Open
OID
053b6a…4dfb:285
miners details

Inspect ref

playerXp

v0.Tree

// addr → cumulative rarity-weighted XP (uint64 string)

Open
OID
053b6a…4dfb:287
playerXp details

Inspect ref

lastClaim

v0.Tree

// addr → unix timestamp of last ClaimAndMint

Open
OID
053b6a…4dfb:289
lastClaim details

Inspect ref

blacklist

v0.Tree

// addr → "reason:timestamp"

Open
OID
053b6a…4dfb:291
blacklist details

Inspect ref

banExpiries

v0.Tree

// addr → unix expiry (0 = permanent)

Open
OID
053b6a…4dfb:293
banExpiries details

Inspect ref

guilds

v0.Tree

// guildId → JSON{name, leader, memberCount, createdAt}

Open
OID
053b6a…4dfb:295
guilds details

Inspect ref

guildMembers

v0.Tree

// guildId+":"+addr → "1"

Open
OID
053b6a…4dfb:297
guildMembers details

Inspect ref

playerGuild

v0.Tree

// addr → guildId

Open
OID
053b6a…4dfb:299
playerGuild details

Inspect ref

gnomePasses

v0.Tree

// addr → unix expiry timestamp string

Open
OID
053b6a…4dfb:301
gnomePasses details

Inspect ref

paused

bool

Value

false

passPriceUgnot

int64

Value

5000000

passRevenueUgnot

int64

// lifetime ugnot received for passes (accounting only)

Value

0

gnotCoinId

string

Value

"gnot"

gnotDeposited

uint64

// lifetime ugnot deposited (accounting / audit)

Value

0

pvpCounter

uint64

// monotonically increasing lobby number

Value

0

guildCounter

uint64

// monotonically increasing guild number

Value

0

relayAddress

.uverse.address

Value

<zero>

relayNonces

v0.Tree

// addr → last nonce (decimal string)

Open
OID
053b6a…4dfb:311
relayNonces details

Inspect ref

migrationFinalized

bool

Value

true

migrationBatches

v0.Tree

// batchId → "kind:count"

Open
OID
053b6a…4dfb:314
migrationBatches details

Inspect ref

migrationAddrs

v0.Tree

// addr → "1" (deduplicates across batch re-runs)

Open
OID
053b6a…4dfb:316
migrationAddrs details

Inspect ref

toolOrder

[]string (len=15)

toolOrder is the canonical upgrade path from hands to omega.

Open
OID
053b6a…4dfb:318
toolOrder details (len=15)

+15 more Inspect slice

toolRequires

map[string]string

toolRequires: BuyTool must panic unless the caller owns the prerequisite tool.

Open
OID
053b6a…4dfb:320
toolRequires details

Inspect map

toolMaxRarity

map[string]int

toolMaxRarity: highest coin rarity each tool can mine (used by the claim rate cap).

Open
OID
053b6a…4dfb:322
toolMaxRarity details

Inspect map

toolCosts

map[string][][2]string

toolCosts maps toolId → slice of \[coinId, amount] pairs. Matches catalog.ts TOOLS array exactly. Amounts are for qty=1.

Open
OID
053b6a…4dfb:324
toolCosts details

Inspect map

skillBaseCosts

map[string][][2]string

skillBaseCosts maps skillId → base cost at rank 0. Actual cost at rank N = base × 2^N (doubles per rank).

Open
OID
053b6a…4dfb:532
skillBaseCosts details

Inspect map

skillMaxRanks

map[string]uint64

skillMaxRanks maps skillId → maximum rank allowed. Most skills cap at 3 or 4 — see catalog.ts SKILLS\[\*].max.

Open
OID
053b6a…4dfb:1013
skillMaxRanks details

Inspect map

toolMaxLife

map[string]uint64

toolMaxLife maps toolId → maximum durability in blocks broken. 0 = indestructible (hands, starter-twig, twig). Matches catalog.ts tool.life.

Open
OID
053b6a…4dfb:1015
toolMaxLife details

Inspect map

coinRarity

map[string]int
Open
OID
053b6a…4dfb:1341
coinRarity details

Inspect map

skillDustHeadroom

uint64

// ×175/100

Value

175

skillDmgHeadroom

uint64

// ×200/100

Value

200

skillDropHeadroom

uint64

// ×130/100

Value

130

toolLifeSkillIds

[]string (len=11)

toolLifeSkillIds lists the on-chain skills that grant toolLifeBonus. Covers the Things branch (level 50) and the Nature-branch skills that also affect tool wear. Must stay in sync with catalog.ts SKILLS\[\*].toolLifeBonus.

Open
OID
053b6a…4dfb:1018
toolLifeSkillIds details (len=11)

+11 more Inspect slice

toolLifeSkillBonus

map[string]uint64

toolLifeSkillBonus maps each skill to its per-rank life bonus fraction × 1000. e.g. "tempered\_grip" → 100 means +10.0% per rank (100/1000 = 0.10).

Open
OID
053b6a…4dfb:1020
toolLifeSkillBonus details

Inspect map

claimBucketSecs

int64

── Claim rate cap tables (REPORT.md §5) ───────────────────────────────────── claimBucketSecs: how many seconds of allowance the bucket can bank (1 hour).

Value

3600

claimRatePerMin

map[string][7]uint64

claimRatePerMin\[toolId]\[rarity] = max coins/min of that rarity the caller may claim (before skill headroom). Indexed 0=dust..6=mythic.

Open
OID
053b6a…4dfb:1022
claimRatePerMin details

Inspect map

veinDefaultMax

[7]uint64

── Vein caps (game29) ─────────────────────────────────────────────────────── Every coin in coinRarity has a vein from deploy: its max is the default for its rarity unless the admin overrides it. No per-coin init writes needed. Defaults: ≈1 year of demand per core coin × 1.5 headroom (see REPORT §6).

Open
OID
053b6a…4dfb:1039
veinDefaultMax details

Inspect array

veinCoinDefault

map[string]uint64

Per-coin default overrides (static: no deploy-time writes).

Open
OID
053b6a…4dfb:1041
veinCoinDefault details

Inspect map

coinAmt

type

── Achievement allowlist (game29) ─────────────────────────────────────────── Static ids with FIXED rewards. Grind ids "g.\<coin>.\<need>" are valid for any allowlisted coin and need ∈ grindRungs. The client can never choose a reward.

Value

game33.coinAmt

achievementRewards

map[string][]game33.coinAmt
Open
OID
053b6a…4dfb:1043
achievementRewards details

Inspect map

grindPay

func(need uint64) uint64
Open
OID
053b6a…4dfb:1162
grindPay details

Inspect func

pvpGames

map[string][]string

── PvP / casino allowlists ──────────────────────────────────────────────────

Open
OID
053b6a…4dfb:1165
pvpGames details

Inspect map

pvpTimeoutSec

int64

// AFK window before ClaimPvpTimeout

Value

600

pvpRakePct

uint64

// to admin balance

Value

2

voucherMaxTTL

int64

// vouchers must expire within 15 min

Value

900

claimCooldownSec

int64

// min seconds between ClaimAndMint

Value

60

claimInitialGraceSec

int64

// a new rarity bucket starts with 5 min of allowance

Value

300

maxGuildMembers

untyped bigint

Value

(10 <untyped> bigint)

maxGuildNameLen

untyped bigint

Value

(24 <untyped> bigint)

guildJSON

func(guildId string, name string, leader string, members int, createdAt int64) string
Open
OID
053b6a…4dfb:1175
guildJSON details

Inspect func

guildMemberCount

func(gid string) int
Open
OID
053b6a…4dfb:1177
guildMemberCount details

Inspect func

guildMeta

type

Value

game33.guildMeta

guildMetas

map[string]game33.guildMeta

guild meta is stored alongside the JSON so it can be re-rendered safely.

Open
OID
053b6a…4dfb:1179
guildMetas details

Inspect map

rewriteGuild

func(gid string)
Open
OID
053b6a…4dfb:1180
rewriteGuild details

Inspect func

CreateGuild

func(name string) string
Open
OID
053b6a…4dfb:1181
CreateGuild details

Inspect func

JoinGuild

func(guildId string)
Open
OID
053b6a…4dfb:1182
JoinGuild details

Inspect func

PlayerGuild

func(addr string) string
Open
OID
053b6a…4dfb:1184
PlayerGuild details

Inspect func

GuildInfo

func(guildId string) string
Open
OID
053b6a…4dfb:1185
GuildInfo details

Inspect func

TopGuilds

func(limit int) string
Open
OID
053b6a…4dfb:1186
TopGuilds details

Inspect func

kvJSON

func(prefixAddr string, t *v0.Tree) string
Open
OID
053b6a…4dfb:1187
kvJSON details

Inspect func

AllBalances

func(playerAddr string) string
Open
OID
053b6a…4dfb:1188
AllBalances details

Inspect func

LifetimeMined

func(playerAddr string) string
Open
OID
053b6a…4dfb:1189
LifetimeMined details

Inspect func

PlayerXp

func(playerAddr string) string

PlayerXp returns the caller's cumulative rarity-weighted XP earned from ClaimAndMint calls as a plain decimal string (e.g. "12345"). Returns "0" for players who have not yet minted anything on this realm version.

Open
OID
053b6a…4dfb:1190
PlayerXp details

Inspect func

Rewarded

func(playerAddr string) string

Rewarded returns what rewards (medals etc.) credited, per coin. Separate from LifetimeMined.

Open
OID
053b6a…4dfb:1191
Rewarded details

Inspect func

SkillRanks

func(playerAddr string) string
Open
OID
053b6a…4dfb:1192
SkillRanks details

Inspect func

ToolLife

func(playerAddr string) string
Open
OID
053b6a…4dfb:1193
ToolLife details

Inspect func

OwnedTools

func(playerAddr string) string
Open
OID
053b6a…4dfb:1194
OwnedTools details

Inspect func

PlayerProfile

func(playerAddr string) string
Open
OID
053b6a…4dfb:1195
PlayerProfile details

Inspect func

AllMiners

func(limit int, offset int) string

AllMiners returns the leaderboard sorted by total mined (desc), paginated. (game28 returned it in address order.)

Open
OID
053b6a…4dfb:1196
AllMiners details

Inspect func

GetMedals

func(playerAddr string) string
Open
OID
053b6a…4dfb:1197
GetMedals details

Inspect func

DailyCheckinStatus

func(playerAddr string) string
Open
OID
053b6a…4dfb:1198
DailyCheckinStatus details

Inspect func

ListTasks

func(string) string
Open
OID
053b6a…4dfb:1199
ListTasks details

Inspect func

deductBalances

func(caller string, costs [][2]string)

deductBalances checks all balances, then deducts (no partial deductions).

Open
OID
053b6a…4dfb:1201
deductBalances details

Inspect func

guildRow

type

Value

game33.guildRow

guildRows

type

Value

game33.guildRows

minerRow

type

Value

game33.minerRow

minerRows

type

Value

game33.minerRows

VoucherMessage

func(kind string, player string, nonce int64, expiry int64, payload string) string

VoucherMessage builds the canonical message that the server signs and the realm verifies. Format: gnomoji-voucher-v2|chainId|kind|player|nonce|expiry|compactPayload v2 changes from v1: realmPkgPath removed; payload is now compact (not raw JSON). For kind="claim": compactPayload = coinId:amount pairs sorted by coinId, comma-joined. e.g. [["grin","100"],["joy","50"]] → "grin:100,joy:50" For kind="ach": compactPayload = achievement IDs sorted, comma-joined. e.g. ["blocks_1","g.grin.10"] → "blocks_1,g.grin.10"

Open
OID
053b6a…4dfb:1202
VoucherMessage details

Inspect func

compactClaimPayload

func(coinsJson string) string

compactClaimPayload builds the canonical compact payload for a "claim" voucher from a coinsJson string: \[\["coinId","amount"],...]. Output: "coinId:amount" pairs sorted alphabetically by coinId, comma-joined. Must produce the same output as the TypeScript claimVoucherPayload() function in src/lib/game/claim-voucher.ts.

Open
OID
053b6a…4dfb:1204
compactClaimPayload details

Inspect func

compactAchPayload

func(idsJson string) string

compactAchPayload builds the canonical compact payload for an "ach" voucher from an idsJson string: \["achId",...]. Output: achievement IDs sorted alphabetically, comma-joined.

Open
OID
053b6a…4dfb:1205
compactAchPayload details

Inspect func

LastNonce

func(addr string) int64

LastNonce returns the last voucher nonce used by addr (0 if none).

Open
OID
053b6a…4dfb:1206
LastNonce details

Inspect func

useVoucher

func(kind string, player string, nonce int64, expiry int64, payload string, sigHex string)
Open
OID
053b6a…4dfb:1207
useVoucher details

Inspect func

bestOwnedTool

func(callerAddr string) string

bestOwnedTool returns the highest-tier tool the caller owns that still has durability (or is indestructible). "hands" if none.

Open
OID
053b6a…4dfb:1208
bestOwnedTool details

Inspect func

effectiveRateFor

func(tool string, r int) uint64
Open
OID
053b6a…4dfb:1209
effectiveRateFor details

Inspect func

loadPackedBuckets

func(addr string, nowTs int64) [7][2]uint64

loadPackedBuckets reads the packed claimBuckets entry for addr, or creates a fresh one. Returns \[7]\[2]uint64 where \[r]\[0]=accruedMillis, \[r]\[1]=lastTs. Lazy-migrates from the old per-rarity key format (addr+":"+r) on first read after an upgrade.

Open
OID
053b6a…4dfb:1210
loadPackedBuckets details

Inspect func

formatPackedBuckets

func(buckets [7][2]uint64) string

formatPackedBuckets serializes \[7]\[2]uint64 to "m0:t0|m1:t1|...|m6:t6".

Open
OID
053b6a…4dfb:1211
formatPackedBuckets details

Inspect func

bucketState

func(allBuckets [7][2]uint64, r int, tool string, nowTs int64) (uint64, uint64)

bucketState returns (accruedMillis, capMillis) for rarity r at nowTs. allBuckets is the result of loadPackedBuckets — pass it in to avoid re-reading the AVL entry for each rarity check.

Open
OID
053b6a…4dfb:1212
bucketState details

Inspect func

enforceClaimRate

func(callerAddr string, byRarity [7]uint64, nowTs int64, tool string)

enforceClaimRate checks every rarity first, then deducts (no partial writes). FIX 2A: reads claimBuckets once (packed format) instead of once per rarity.

Open
OID
053b6a…4dfb:1213
enforceClaimRate details

Inspect func

decrementToolLife

func(callerAddr string, totalCoins uint64, tool string)

decrementToolLife wears the best tool by the number of non-dust coins. FIX 1A: accepts pre-computed tool to avoid a second bestOwnedTool call.

Open
OID
053b6a…4dfb:1214
decrementToolLife details

Inspect func

parseCoinClaims

func(coinsJson string) ([]string, map[string]uint64, [7]uint64)

parseCoinClaims parses \[\["coinId","amount"],...]. Unknown ids panic (allowlist); duplicate ids are summed; at most 20 entries.

Open
OID
053b6a…4dfb:1215
parseCoinClaims details

Inspect func

guildBonusPct

func(addr string) uint64
Open
OID
053b6a…4dfb:1216
guildBonusPct details

Inspect func

creditMined

func(addr string, coinId string, amt uint64) uint64

creditMined credits a mined/reward amount to addr, capped by the vein, and records lifetime total. Returns the amount credited. FIX 1B: miners update removed — caller must addU(&miners, addr, total) after the loop.

Open
OID
053b6a…4dfb:1217
creditMined details

Inspect func

creditReward

func(addr string, coinId string, amt uint64) uint64

creditReward credits a reward (medal/achievement or any future event). It still draws from the vein (so rewards can't exceed supply caps) but is tracked in its own counter: it never touches lifetimeMined or the miners leaderboard, so rewards can't unlock grind medals or inflate rankings.

Open
OID
053b6a…4dfb:1218
creditReward details

Inspect func

ClaimAndMint

func(coinsJson string, nonce int64, expiry int64, sigHex string) string

ClaimAndMint credits mined coins to the caller's on-chain balance. coinsJson: \[\["coinId","amount"],...]. Requires a server voucher (see VoucherMessage) for exactly this coinsJson, plus the on-chain rate cap for the caller's best tool, the coin allowlist and the vein caps. Returns a JSON object of what was actually credited (after bonuses/veins).

Open
OID
053b6a…4dfb:1219
ClaimAndMint details

Inspect func

ClaimMine

func(coinsJson string)

ClaimMine (game27/28 two-step flow) is retired: pending mints are gone.

Open
OID
053b6a…4dfb:1220
ClaimMine details

Inspect func

PendingMints

func(playerAddr string) string

PendingMints is kept for client compatibility; game29 has no pending step.

Open
OID
053b6a…4dfb:1221
PendingMints details

Inspect func

ClaimAllowance

func(playerAddr string) string

ClaimAllowance returns the current per-rarity allowance for addr.

Open
OID
053b6a…4dfb:1222
ClaimAllowance details

Inspect func

lget

func(id string, f string) string
Open
OID
053b6a…4dfb:1223
lget details

Inspect func

lset

func(id string, f string, v string)
Open
OID
053b6a…4dfb:1225
lset details

Inspect func

renderLobby

func(id string)
Open
OID
053b6a…4dfb:1226
renderLobby details

Inspect func

lastAction

func(id string) int64
Open
OID
053b6a…4dfb:1228
lastAction details

Inspect func

CreatePvpLobby

func(game string, coinId string, betAmount string) string

CreatePvpLobby escrows the creator's wager and opens a lobby.

Open
OID
053b6a…4dfb:1229
CreatePvpLobby details

Inspect func

JoinPvpLobby

func(lobbyId string)
Open
OID
053b6a…4dfb:1230
JoinPvpLobby details

Inspect func

pvpWagered

func(id string) bool

pvpWagered: a lobby that escrowed coins before wagers were switched off. It can only be cancelled or refunded after the timeout.

Open
OID
053b6a…4dfb:1231
pvpWagered details

Inspect func

CancelPvpLobby

func(lobbyId string)

CancelPvpLobby lets the creator close an open lobby nobody joined (refund). Works while paused: a refund of the player's own escrow is never blocked.

Open
OID
053b6a…4dfb:1232
CancelPvpLobby details

Inspect func

memberOf

func(lobbyId string, addr string) bool
Open
OID
053b6a…4dfb:1233
memberOf details

Inspect func

CommitPvpMove

func(lobbyId string, moveHash string)

CommitPvpMove stores sha256(choice+":"+salt) for the caller. Members only, once per player per lobby, only while the lobby is joined.

Open
OID
053b6a…4dfb:1234
CommitPvpMove details

Inspect func

validChoice

func(game string, choice string) bool
Open
OID
053b6a…4dfb:1235
validChoice details

Inspect func

moveHash

func(choice string, salt string) string
Open
OID
053b6a…4dfb:1236
moveHash details

Inspect func

RevealPvpMove

func(lobbyId string, choice string, salt string)

RevealPvpMove reveals a committed move. The tx fails unless sha256(choice+":"+salt) equals the stored commit. A matching reveal of an invalid choice forfeits the match. When both have revealed, it settles.

Open
OID
053b6a…4dfb:1237
RevealPvpMove details

Inspect func

pvpWinner

func(game string, creator string, challenger string, cChoice string, chChoice string, cSalt string, chSalt string) string

pvpWinner: rps uses the usual rules. coin\_flip / higher\_lower flip a coin from sha256(creatorSalt:challengerSalt) — neither player controls it alone — and whoever alone called it wins (both or neither right = draw).

Open
OID
053b6a…4dfb:1238
pvpWinner details

Inspect func

settlePvp

func(lobbyId string, result string)

settlePvp pays out the escrow. result = winner addr, "draw" or "refund".

Open
OID
053b6a…4dfb:1239
settlePvp details

Inspect func

ClaimPvpTimeout

func(lobbyId string)

ClaimPvpTimeout resolves a stuck match after pvpTimeoutSec without action: - only one player committed → that player wins; - both committed, only one revealed → the revealer wins; - otherwise → both refunded. Any lobby member may call it. Escrow can never stay locked.

Open
OID
053b6a…4dfb:1240
ClaimPvpTimeout details

Inspect func

ExpireLobbies

func()

ExpireLobbies is a no-op kept for API compatibility (timeouts are per lobby).

Open
OID
053b6a…4dfb:1241
ExpireLobbies details

Inspect func

PvpLobby

func(lobbyId string) string
Open
OID
053b6a…4dfb:1242
PvpLobby details

Inspect func

sha256Sum

func(s string) string
Open
OID
053b6a…4dfb:1244
sha256Sum details

Inspect func

zeroPad

func(n uint64, w int) string

zeroPad formats n with leading zeros to width w (ufmt has no %0Nd).

Open
OID
053b6a…4dfb:1245
zeroPad details

Inspect func

effectiveMaxLife

func(callerAddr string, toolId string) uint64

effectiveMaxLife = toolMaxLife × (1000 + Σ rank × bonus‰) / 1000. FIX 1C: fast-path for players with no tool-life skills trained (the common case), avoiding 22 AVL reads (11 skills × Has+Get) that all return 0.

Open
OID
053b6a…4dfb:1246
effectiveMaxLife details

Inspect func

ownsTool

func(addr string, toolId string) bool
Open
OID
053b6a…4dfb:1248
ownsTool details

Inspect func

Transfer

func(coinId string, toAddr string, amountStr string)

Transfer sends coins to another player. It is a player's own money, so the admin can't stop it: it works while the game is paused and for banned addresses (bans only stop earning). It needs a finalized migration (MigrateBatch SETs balances). There is no receive cap: any coin can be sent to any player, whatever tools they own.

Open
OID
053b6a…4dfb:1249
Transfer details

Inspect func

RepairTool

func(toolId string)
Open
OID
053b6a…4dfb:1251
RepairTool details

Inspect func

TrainSkill

func(skillId string)
Open
OID
053b6a…4dfb:1252
TrainSkill details

Inspect func

parseGrindId

func(id string) (string, uint64, bool)
Open
OID
053b6a…4dfb:1253
parseGrindId details

Inspect func

isValidAchievementId

func(id string) bool
Open
OID
053b6a…4dfb:1254
isValidAchievementId details

Inspect func

achievementReward

func(addr string, id string) ([]game33.coinAmt, string)

achievementReward returns the fixed reward for id, checking any on-chain predicate (grind: lifetimeMined ≥ need; "\<tool>\_own": tool owned). ok=false means the id is unknown or not earned on chain.

Open
OID
053b6a…4dfb:1255
achievementReward details

Inspect func

claimAchievementsFor

func(addr string, ids []string, strict bool) int

claimAchievementsFor claims ids for addr. strict=true panics on any bad id; otherwise bad/claimed ids are skipped. Returns the number claimed.

Open
OID
053b6a…4dfb:1256
claimAchievementsFor details

Inspect func

ClaimAchievement

func(achievementId string, nonce int64, expiry int64, sigHex string)

ClaimAchievement claims one allowlisted achievement and credits its fixed reward. Needs a server voucher of kind "ach" with payload = \`\["\<id>"]\`.

Open
OID
053b6a…4dfb:1257
ClaimAchievement details

Inspect func

BatchClaimAchievements

func(idsJson string, nonce int64, expiry int64, sigHex string) int

BatchClaimAchievements claims several ids (already-claimed / not-earned ids are skipped). idsJson must be exactly the voucher payload.

Open
OID
053b6a…4dfb:1258
BatchClaimAchievements details

Inspect func

HasAchievement

func(addr string, id string) bool
Open
OID
053b6a…4dfb:1259
HasAchievement details

Inspect func

parseDailyCheckin

func(raw string) (int64, int64)

parseDailyCheckin reads the stored value for an address and returns (lastDay, streak). It handles both the new "\<lastDay>:\<streak>" format and the legacy "\<unix seconds>" format (which stores raw epoch seconds; treated as lastDay = seconds/86400, streak = 1).

Open
OID
053b6a…4dfb:1260
parseDailyCheckin details

Inspect func

CreateTask

func(taskId string, desc string)

Tasks: game28 let anyone mark any task done. In game29 tasks are created and completed for a player only by the operator (server) — no free medals.

Open
OID
053b6a…4dfb:1262
CreateTask details

Inspect func

CompleteTask

func(taskId string)
Open
OID
053b6a…4dfb:1263
CompleteTask details

Inspect func

CompleteTaskFor

func(player string, taskId string)
Open
OID
053b6a…4dfb:1264
CompleteTaskFor details

Inspect func

relayMaxTTL

int64

// 5 minutes — relay vouchers are short-lived

Value

300

relayVoucherMessage

func(kind string, player string, extra string, nonce int64, expiry int64) string

relayVoucherMessage builds the canonical message the server signs.

Open
OID
053b6a…4dfb:1265
relayVoucherMessage details

Inspect func

lastRelayNonce

func(player string) int64

lastRelayNonce returns the last relay nonce for player (0 if none).

Open
OID
053b6a…4dfb:1267
lastRelayNonce details

Inspect func

useRelayVoucher

func(kind string, player string, extra string, nonce int64, expiry int64, sigHex string)

useRelayVoucher verifies and consumes a relay voucher for player. Panics on any failure so the entire tx is rolled back.

Open
OID
053b6a…4dfb:1268
useRelayVoucher details

Inspect func

requireRelay

func()

requireRelay panics unless the caller is the registered relay address.

Open
OID
053b6a…4dfb:1269
requireRelay details

Inspect func

SetRelayAddress

func(addr string)

SetRelayAddress registers the treasury wallet address as the relay. Pass "" to disable the relay.

Open
OID
053b6a…4dfb:1270
SetRelayAddress details

Inspect func

RelayAddress

func() string
Open
OID
053b6a…4dfb:1271
RelayAddress details

Inspect func

RelayBuyTool

func(player string, toolId string, nonce int64, expiry int64, sigHex string)

RelayBuyTool executes BuyTool logic on behalf of \`player\` (the relay pays gas). The server must sign a relay voucher with MOJI\_CLAIM\_SIGNER\_SEED: gnomoji-relay-v1|<chainId>|BuyTool|<player>|<toolId>|<nonce>|<expiry> All prerequisites (coin balance, tool chain, existing ownership) are checked the same as BuyTool — the relay cannot bypass them.

Open
OID
053b6a…4dfb:1272
RelayBuyTool details

Inspect func

RelayTrainSkill

func(player string, skillId string, nonce int64, expiry int64, sigHex string)

RelayTrainSkill executes TrainSkill logic on behalf of \`player\`. Relay voucher message: gnomoji-relay-v1|<chainId>|TrainSkill|<player>|<skillId>|<nonce>|<expiry> Same checks as TrainSkill; max rank and coin deduction apply normally.

Open
OID
053b6a…4dfb:1273
RelayTrainSkill details

Inspect func

LastRelayNonce

func(addr string) int64

LastRelayNonce returns the last relay nonce used by addr (0 if none). Used by the server to compute the next nonce.

Open
OID
053b6a…4dfb:1274
LastRelayNonce details

Inspect func

slotsReels

untyped bigint

Value

(5 <untyped> bigint)

slotsRows

untyped bigint

Value

(4 <untyped> bigint)

slotsCells

untyped bigint

Value

(20 <untyped> bigint)

slotsStripLen

untyped bigint

Value

(40 <untyped> bigint)

slotsBetStep

uint64

// bet must be a multiple of the 25 lines

Value

25

slotsMaxWinMult

uint64

Value

500

symWild

uint8

Value

0

symScatter

uint8

Value

8

symVault

uint8

Value

9

hsLandBelow

uint8

// a free cell lands a coin when its byte \< 8 (3.125%)

Value

8

hsRespins

untyped bigint

Value

(3 <untyped> bigint)

hsMini

uint16

Value

101

hsMinor

uint16

Value

102

hsMajor

uint16

Value

103

hsGrand

uint16

Value

104

slotsStrip

untyped string

One strip for all reels: wild 1, seven 3, diamond 4, trophy 5, star 6, clover 6, flame 7, coin 6, scatter 1, vault 1 (digits = symbol ids).

Value

"8645732106457321645793216457326457364576"

slotsSymbolNames

[10]string
Open
OID
053b6a…4dfb:1276
slotsSymbolNames details

Inspect array

slotsPays

[8][3]uint64

line-bet multiples for 3/4/5 of a kind, symbols 0..7

Open
OID
053b6a…4dfb:1278
slotsPays details

Inspect array

slotsPaylines

[25][5]uint8

same 25 lines as src/lib/game/slots.ts PAYLINES (row per reel)

Open
OID
053b6a…4dfb:1288
slotsPaylines details

Inspect array

slotsScatterPay

[6]uint64

// × bet, by scatter count

Open
OID
053b6a…4dfb:1315
slotsScatterPay details

Inspect array

slotsStream

type

Value

game33.slotsStream

newSlotsStream

func(serverSeed string, clientSecret string, roundId string) *game33.slotsStream
Open
OID
053b6a…4dfb:1318
newSlotsStream details

Inspect func

slotsSpinGrid

func(s *game33.slotsStream) [20]uint8

slotsSpinGrid draws the 5 reel stops and returns the 20 visible symbols.

Open
OID
053b6a…4dfb:1320
slotsSpinGrid details

Inspect func

slotsLineMult

func(g *[20]uint8) (uint64, int)

slotsLineMult = Σ line pays in line-bet units, and how many lines paid.

Open
OID
053b6a…4dfb:1321
slotsLineMult details

Inspect func

slotsCount

func(g *[20]uint8, sym uint8) int
Open
OID
053b6a…4dfb:1322
slotsCount details

Inspect func

hsDrawValue

func(s *game33.slotsStream) uint16

hsDrawValue: 1× 50%, 2× 28%, 3× 12%, 5× 6%, MINI 3%, MINOR 0.9%, MAJOR 0.08%, GRAND 0.02%.

Open
OID
053b6a…4dfb:1323
hsDrawValue details

Inspect func

slotsHoldAndSpin

func(s *game33.slotsStream, g *[20]uint8) ([20]uint16, int, bool)

slotsHoldAndSpin resolves the whole bonus from the stream: the vault cells start locked with a value each; then while respins remain and the board isn't full, every empty cell (in index order) lands a coin when its byte \< 8, and a landing resets the respins to 3. Returns the 20 tiles (0 = empty), how many respins were played, and whether the board filled (blackout = GRAND).

Open
OID
053b6a…4dfb:1324
slotsHoldAndSpin details

Inspect func

slotsGridString

func(g *[20]uint8) string
Open
OID
053b6a…4dfb:1325
slotsGridString details

Inspect func

hsTilesString

func(t *[20]uint16) string
Open
OID
053b6a…4dfb:1326
hsTilesString details

Inspect func

jsonStr

func(s string) string

jsonStr returns s as a quoted, escaped JSON string (game28 concatenated raw user strings into JSON, so a guild name with a quote broke every reader).

Open
OID
053b6a…4dfb:1327
jsonStr details

Inspect func

sanitizeName

func(s string) string

sanitizeName trims and strips control characters from a display name.

Open
OID
053b6a…4dfb:1329
sanitizeName details

Inspect func

isSafeId

func(s string, maxLen int) bool

isSafeId reports whether s is a short \[a-z0-9\_.-] identifier.

Open
OID
053b6a…4dfb:1330
isSafeId details

Inspect func

parseStringRows

func(s string) [][]string

parseStringRows parses a JSON array of arrays of strings, e.g. \[\["g1..","grin","10"],\["g1..","joy","4"]]. Numbers are accepted unquoted. Panics on malformed input.

Open
OID
053b6a…4dfb:1332
parseStringRows details

Inspect func

parseStringList

func(s string) []string

parseStringList parses \["a","b",...].

Open
OID
053b6a…4dfb:1333
parseStringList details

Inspect func

jparser

type

Value

game33.jparser

getU

func(t *v0.Tree, key string) uint64
Open
OID
053b6a…4dfb:1334
getU details

Inspect func

setU

func(t *v0.Tree, key string, v uint64)
Open
OID
053b6a…4dfb:1335
setU details

Inspect func

addU

func(t *v0.Tree, key string, d uint64) uint64

addU adds d to a stored counter; panics instead of wrapping on overflow.

Open
OID
053b6a…4dfb:1336
addU details

Inspect func

balOf

func(addr string, coin string) uint64
Open
OID
053b6a…4dfb:1337
balOf details

Inspect func

creditBal

func(addr string, coin string, amt uint64)
Open
OID
053b6a…4dfb:1338
creditBal details

Inspect func

debitBal

func(addr string, coin string, amt uint64)
Open
OID
053b6a…4dfb:1339
debitBal details

Inspect func
order : type =game33.order
padU : func(n uint64, w int) string Inspect
hexDigits : untyped string ="0123456789abcdef"
priceKey : func(wantAmt uint64, giveAmt uint64) string Inspect
sideEntryLen : untyped bigint =(76 <untyped> bigint)
sideSortLen : untyped bigint =(36 <untyped> bigint)
maxSideOrders : untyped bigint =(256 <untyped> bigint)
encodeOrder : func(o *game33.order) string Inspect
decodeOrder : func(maker string, rec string) *game33.order Inspect
makerRecs : func(maker string) []string Inspect
setMakerRecs : func(maker string, recs []string) Inspect
loadOrderOf : func(maker string, id uint64) *game33.order Inspect
saveOrder : func(o *game33.order) Inspect
sideKey : func(want string, give string) string Inspect
sideEntry : func(o *game33.order) string Inspect
sideStr : func(k string) string Inspect
sideSearch : func(s string, key string) int Inspect
sideInsert : func(o *game33.order) Inspect
sideRemove : func(o *game33.order) Inspect
iterSide : func(pay string, get string, fn func(...)) Inspect
sideCount : func(pay string, get string) int Inspect
grinValueMilli : func(coin string, amt uint64) uint64 Inspect
openOrderCount : func(maker string) uint64 Inspect
PlaceOrder : func(give string, giveAmt uint64, want string, wantAmt uint64, expirySecs int64) uint64 Inspect
closeOrder : func(o *game33.order, reason string) Inspect
CancelOrder : func(id uint64) Inspect
SweepExpiredOrders : func(pay string, get string) int Inspect
fillStep : type =game33.fillStep
planFills : func(caller string, pay string, get string, budget uint64, maxFills int, now int64) ([]game33.fillStep, []*game33.order, uint64, uint64) Inspect
executeFills : func(caller string, pay string, steps []game33.fillStep) uint64 Inspect
FillOrders : func(pay string, get string, payAmt uint64, minGet uint64, maxFills int, deadline int64) uint64 Inspect
orderJSON : func(o *game33.order) string Inspect
Order : func(maker string, id uint64) string Inspect
OrdersOf : func(addr string) string Inspect
BookDepth : func(pay string, get string, limit int, offset int) string Inspect
QuoteFill : func(caller string, pay string, get string, payAmt uint64, maxFills int) string Inspect
hubCoin : untyped string ="grin"
poolFeeBps : uint64 =50
protoFeeBps : uint64 =15
minLiquidity : uint64 =1000
minOpenDepthGrin : uint64 =2000
warmupSecs : int64 =600
rootKScale : uint64 =1000000000
takerFeeBps : uint64 =50
makerFeeBps : uint64 =90
minOrderGrinX1k : uint64 =50000
maxOpenOrders : uint64 =20
defaultExpiry : int64 =259200
maxExpiry : int64 =604800
maxFillsPerTx : untyped bigint =(10 <untyped> bigint)
maxScanPerTx : untyped bigint =(20 <untyped> bigint)
maxViewLimit : untyped bigint =(50 <untyped> bigint)
maxAmount : uint64 =1000000000000000
prefMilli : [7]uint64 Inspect
pools : v0.Tree Inspect
lpPositions : v0.Tree Inspect
adminFees : v0.Tree Inspect
casinoPool : v0.Tree Inspect
makerBooks : v0.Tree Inspect
sides : v0.Tree Inspect
openOrderTotal : uint64 =0
nextOrderId : uint64 =0
exPaused : bool =false
adminFeesWithdrawn : v0.Tree Inspect
adminGnotWithdrawn : int64 =0
addChk : func(a uint64, b uint64) uint64 Inspect
subChk : func(a uint64, b uint64) uint64 Inspect
mulDiv : func(a uint64, b uint64, c uint64) uint64 Inspect
mulDivUp : func(a uint64, b uint64, c uint64) uint64 Inspect
isqrt128 : func(a uint64, b uint64) uint64 Inspect
isqrt : func(n uint64) uint64 Inspect
mulLess : func(a uint64, b uint64, c uint64, d uint64) bool Inspect
requireBalance : func(addr string, coin string, amt uint64) Inspect
requireAmount : func(name string, v uint64) Inspect
u : func(n uint64) string Inspect
exchangeCaller : func() string Inspect
requireMarketOpen : func(caller string) Inspect
requireDeadline : func(deadline int64) Inspect
requireCoin : func(coin string) int Inspect
accrueProtocolFee : func(coin string, amt uint64) Inspect
WithdrawProtocolFees : func(coin string) uint64 Inspect
SetExchangePaused : func(p bool) Inspect
ExchangeStatus : func() string Inspect
ProtocolFees : func(coin string) string Inspect
DepositGnot : func() uint64 Inspect
WithdrawGnot : func(amtStr string) Inspect
gnotPools : v0.Tree Inspect
gnotLpPositions : v0.Tree Inspect
gnotPool : func(coin string) *game33.pool Inspect
OpenGnotPool : func(coin string, coinAmt uint64, gnotAmt uint64, minShares uint64, deadline int64) uint64 Inspect
AddGnotLiquidity : func(coin string, coinMax uint64, gnotMax uint64, minShares uint64, deadline int64) uint64 Inspect
RemoveGnotLiquidity : func(coin string, shares uint64, minCoin uint64, minGnot uint64, deadline int64) (uint64, uint64) Inspect
poolSwapGnot : func(p *game33.pool, inIsHub bool, amountIn uint64) uint64 Inspect
GnotBalance : func(addr string) string Inspect
GnotPoolInfo : func(coin string) string Inspect
GnotPools : func(limit int, offset int) string Inspect
QuoteGnotSwap : func(coinIn string, coinOut string, amountIn uint64) string Inspect
GnotLpPosition : func(coin string, addr string) string Inspect
GnotLpPositions : func(addr string, limit int, offset int) string Inspect
pool : type =game33.pool
lpPos : type =game33.lpPos
getPool : func(coin string) *game33.pool Inspect
rootKPerShare : func(p *game33.pool) uint64 Inspect
CreatePool : func(coin string) Inspect
OpenPool : func(coin string, coinAmt uint64, grinAmt uint64, minShares uint64, deadline int64) uint64 Inspect
SetPoolPaused : func(coin string, p bool) Inspect
AddLiquidity : func(coin string, coinMax uint64, grinMax uint64, minShares uint64, deadline int64) uint64 Inspect
lpPayout : func(p *game33.pool, pos *game33.lpPos, shares uint64, now int64) (uint64, uint64) Inspect
RemoveLiquidity : func(coin string, shares uint64, minCoin uint64, minGrin uint64, deadline int64) (uint64, uint64) Inspect
poolQuote : func(p *game33.pool, inIsHub bool, amountIn uint64) (uint64, uint64) Inspect
poolOpenForSwaps : func(p *game33.pool) bool Inspect
poolSwap : func(p *game33.pool, inIsHub bool, amountIn uint64) uint64 Inspect
SwapExactIn : func(coinIn string, coinOut string, amountIn uint64, minOut uint64, deadline int64) uint64 Inspect
poolJSON : func(p *game33.pool) string Inspect
PoolInfo : func(coin string) string Inspect
Pools : func(limit int, offset int) string Inspect
QuoteSwap : func(coinIn string, coinOut string, amountIn uint64) string Inspect
LpPosition : func(coin string, addr string) string Inspect
LpPositions : func(addr string, limit int, offset int) string Inspect
poolPathOut : func(coinIn string, coinOut string, amountIn uint64) (uint64, bool) Inspect
gnotPathOut : func(coinIn string, coinOut string, amountIn uint64) (uint64, bool) Inspect
bestPathOut : func(coinIn string, coinOut string, amountIn uint64) (uint64, bool) Inspect
routePlan : func(caller string, coinIn string, coinOut string, amountIn uint64, maxFills int, now int64) ([]game33.fillStep, []*game33.order, uint64, uint64, uint64) Inspect
SwapRoute : func(coinIn string, coinOut string, amountIn uint64, minOut uint64, maxFills int, deadline int64) uint64 Inspect
QuoteRoute : func(caller string, coinIn string, coinOut string, amountIn uint64, maxFills int) string Inspect
requireCoinOrGnot : func(coin string) Inspect
gnotRoutePlan : func(caller string, coinIn string, coinOut string, amountIn uint64, maxFills int, now int64) ([]game33.fillStep, []*game33.order, uint64, uint64, uint64) Inspect
executeGnotPoolSwap : func(coinIn string, coinOut string, poolIn uint64) uint64 Inspect
SwapRouteGnot : func(coinIn string, coinOut string, amountIn uint64, minOut uint64, maxFills int, deadline int64) uint64 Inspect
QuoteRouteGnot : func(caller string, coinIn string, coinOut string, amountIn uint64, maxFills int) string Inspect
init.130 : func() Inspect
isAdmin : func() bool Inspect
requireAdmin : func() Inspect
TransferAdmin : func(newAdmin string) Inspect
transferAdmin : func(newAdmin string) Inspect
UpdateConfig : func(newAdmin string) Inspect
SetClaimSigner : func(pubKeyHex string) Inspect
ClaimSigner : func() string Inspect
Admin : func() string Inspect
SetPaused : func(p bool) Inspect
IsPaused : func() bool Inspect
requireNotPaused : func() Inspect
BanAddress : func(targetAddr string, reason string, durationSecs int64) Inspect
UnbanAddress : func(targetAddr string) Inspect
BlacklistStatus : func(addr string) string Inspect
isBlacklisted : func(addr string) bool Inspect
requirePlayer : func() string Inspect
veinMax : func(coinId string) uint64 Inspect
veinMintedOf : func(coinId string) uint64 Inspect
takeFromVein : func(coinId string, amt uint64) uint64 Inspect
SetVeinMax : func(coinId string, maxSupply string) Inspect
setVeinMax : func(coinId string, maxSupply string) Inspect
RegisterVein : func(coinId string, maxSupply string) Inspect
VeinSupply : func(coinId string) string Inspect
SetPassPrice : func(ugnotPer30Days int64) Inspect
PassPrice : func() int64 Inspect
ActivateGnomePass : func(durationDays int64) Inspect
GnomePassExpiry : func(addr string) int64 Inspect
HasActivePass : func(addr string) bool Inspect
GnomePassCount : func() int Inspect
PassRevenue : func() int64 Inspect
TreasuryBalance : func() int64 Inspect
WithdrawFunds : func(to string, amountUgnot int64) Inspect
WithdrawableFunds : func() int64 Inspect
MigrateBatch : func(batchId string, kind string, rowsJson string) int Inspect
FinalizeMigration : func() Inspect
MigrationStatus : func() string Inspect
MigrationBatch : func(batchId string) string Inspect
validAddr : func(s string) bool Inspect
migrateRow : func(kind string, r []string) bool Inspect
casinoBets : v0.Tree Inspect
casinoReserved : v0.Tree Inspect
casinoDay : v0.Tree Inspect
casinoWinRange : uint64 =49
rpsWinBelow : uint64 =33
rpsPushBelow : uint64 =65
casinoBetWindowSec : int64 =3600
casinoSeedTimeoutSec : int64 =1800
casinoSecretTimeoutSec : int64 =86400
casinoMaxBetBps : uint64 =50
slotsMaxBetPPM : uint64 =40
casinoOpenBps : uint64 =2000
casinoDayBps : uint64 =1000
casinoMinPoolMilli : uint64 =20000000
casinoMinPoolUnits : uint64 =200
casinoMaxAmount : uint64 =1000000000
casinoRefMilli : [7]uint64 Inspect
casinoRound : type =game33.casinoRound
casinoBet : type =game33.casinoBet
isOperator : func() bool Inspect
SetOperator : func(addr string) Inspect
Operator : func() string Inspect
casinoStats : v0.Tree Inspect
casStat : func(coin string, game string, field string, add uint64) Inspect
casRecord : func(coin string, game string, staked uint64, paid uint64) Inspect
CasinoStats : func(coinId string) string Inspect
casGet : func(t *v0.Tree, key string) uint64 Inspect
casSet : func(t *v0.Tree, key string, v uint64) Inspect
casAdd : func(a uint64, b uint64) uint64 Inspect
casSub : func(a uint64, b uint64) uint64 Inspect
casMulDiv : func(a uint64, b uint64, c uint64) uint64 Inspect
casMul : func(a uint64, b uint64) uint64 Inspect
casU : func(n uint64) string Inspect
casBalOf : func(addr string, coin string) uint64 Inspect
casCredit : func(addr string, coin string, amt uint64) Inspect
casDebit : func(addr string, coin string, amt uint64) Inspect
casGrinValueMilli : func(coin string, amt uint64) uint64 Inspect
casIsHex64 : func(s string) bool Inspect
casSafe : func(s string, maxLen int) bool Inspect
sha256Hex : func(s string) string Inspect
CasinoRoll : func(serverSeed string, clientSecret string, roundId string, game string) uint64 Inspect
CasinoOutcome : func(game string, roll uint64) string Inspect
rpsHouseMove : func(choice string, outcome string) string Inspect
validCasinoChoice : func(game string, choice string) bool Inspect
casinoExposure : func(game string, amt uint64) uint64 Inspect
casDayNow : func() int64 Inspect
casinoDayState : func(coin string) (int64, uint64, uint64, uint64) Inspect
setCasinoDay : func(coin string, day int64, snap uint64, paid uint64, recv uint64) Inspect
casinoIsOpen : func(coin string, pool uint64) bool Inspect
casinoMaxBet : func(game string, free uint64) uint64 Inspect
casinoCheckBet : func(coin string, game string, amt uint64) Inspect
casinoReserve : func(coin string, exp uint64) Inspect
casinoSettle : func(addr string, coin string, amt uint64, exposure uint64, payout uint64) uint64 Inspect
SeedCasinoPool : func(coinId string, amount string) Inspect
CasinoPool : func(coinId string) string Inspect
casinoGrants : v0.Tree Inspect
casinoJackpot : v0.Tree Inspect
casinoJpDust : v0.Tree Inspect
casinoJpSeed : v0.Tree Inspect
casinoJpRef : v0.Tree Inspect
freeSpinMult : uint64 =2
jpMajorBps : uint64 =100
jpGrandBps : uint64 =50
jpDefaultRefBet : uint64 =100
jpResetFreeMultiple : uint64 =20
hsMiniMult : uint64 =20
hsMinorMult : uint64 =75
freeSpinGrant : type =game33.freeSpinGrant
getGrant : func(addr string) *game33.freeSpinGrant Inspect
jpKey : func(coin string, tier string) string Inspect
jpRefBet : func(coin string) uint64 Inspect
casinoJackpotContribute : func(coin string, amt uint64) Inspect
casinoJackpotPay : func(addr string, coin string, tier string, bet uint64) uint64 Inspect
slotsHSPayout : func(tiles *[20]uint16, full bool) (uint64, bool, bool) Inspect
PlaceCasinoFreeSpin : func(roundId string, clientHash string) Inspect
settleFreeSpin : func(b *game33.casinoBet, win uint64) uint64 Inspect
FreeSpinGrant : func(addr string) string Inspect
CasinoJackpots : func(coinId string) string Inspect
validJpTier : func(tier string) bool Inspect
SeedCasinoJackpot : func(coinId string, tier string, amount string) Inspect
SetCasinoJackpotSeed : func(coinId string, tier string, amount string) Inspect
SetCasinoJackpotRefBet : func(coinId string, amount string) Inspect
getCasinoRound : func(id string) *game33.casinoRound Inspect
mustCasinoRound : func(id string) *game33.casinoRound Inspect
casinoRoundBet : func(r *game33.casinoRound, roundId string) *game33.casinoBet Inspect
CommitCasinoSeed : func(roundId string, player string, seedHash string) Inspect
PlaceCasinoBet : func(roundId string, game string, coinId string, betAmount string, choice string, clientHash string) Inspect
RevealCasinoSeed : func(roundId string, serverSeed string) Inspect
RevealCasinoSecret : func(roundId string, clientSecret string) Inspect
casinoResolve : func(roundId string, r *game33.casinoRound, b *game33.casinoBet) Inspect
RefundCasinoBet : func(roundId string) Inspect
ForfeitCasinoBet : func(roundId string) Inspect
CasinoRound : func(roundId string) string Inspect
CasinoBet : func(roundId string, addr string) string Inspect
JackpotPool : func(coinId string) string Inspect
CasinoHistory : func(string) string Inspect
realmPkgPath : untyped string ="gno.land/r/g1algwpj0dch4stpy7pd87n7a3cwx3pjymlpexn7/game33"
admin : .uverse.address =<gnolang.StringValue>
operator : .uverse.address =<gnolang.StringValue>
claimSignerPubKey : []uint8 =<zero>
claimNonces : v0.Tree Inspect
balances : v0.Tree Inspect
claimBuckets : v0.Tree Inspect
veinMinted : v0.Tree Inspect
veinMaxOverride : v0.Tree Inspect
veinOverrideActive : bool =false
casinoRounds : v0.Tree Inspect
pvpLobbies : v0.Tree Inspect
pvpWagers : v0.Tree Inspect
ownedTools : v0.Tree Inspect
toolLife : v0.Tree Inspect
lifetimeMined : v0.Tree Inspect
rewarded : v0.Tree Inspect
achievements : v0.Tree Inspect
dailyCheckins : v0.Tree Inspect
skillRanks : v0.Tree Inspect
miners : v0.Tree Inspect
playerXp : v0.Tree Inspect
lastClaim : v0.Tree Inspect
blacklist : v0.Tree Inspect
banExpiries : v0.Tree Inspect
guilds : v0.Tree Inspect
guildMembers : v0.Tree Inspect
playerGuild : v0.Tree Inspect
gnomePasses : v0.Tree Inspect
paused : bool =false
passPriceUgnot : int64 =5000000
passRevenueUgnot : int64 =0
gnotCoinId : string ="gnot"
gnotDeposited : uint64 =0
pvpCounter : uint64 =0
guildCounter : uint64 =0
relayAddress : .uverse.address =<zero>
relayNonces : v0.Tree Inspect
migrationFinalized : bool =true
migrationBatches : v0.Tree Inspect
migrationAddrs : v0.Tree Inspect
toolOrder : []string (len=15) Inspect
toolRequires : map[string]string Inspect
toolMaxRarity : map[string]int Inspect
toolCosts : map[string][][2]string Inspect
skillBaseCosts : map[string][][2]string Inspect
skillMaxRanks : map[string]uint64 Inspect
toolMaxLife : map[string]uint64 Inspect
coinRarity : map[string]int Inspect
skillDustHeadroom : uint64 =175
skillDmgHeadroom : uint64 =200
skillDropHeadroom : uint64 =130
toolLifeSkillIds : []string (len=11) Inspect
toolLifeSkillBonus : map[string]uint64 Inspect
claimBucketSecs : int64 =3600
claimRatePerMin : map[string][7]uint64 Inspect
veinDefaultMax : [7]uint64 Inspect
veinCoinDefault : map[string]uint64 Inspect
coinAmt : type =game33.coinAmt
achievementRewards : map[string][]game33.coinAmt Inspect
grindRungs : []uint64 (len=5) Inspect
grindPay : func(need uint64) uint64 Inspect
pvpGames : map[string][]string Inspect
pvpTimeoutSec : int64 =600
pvpRakePct : uint64 =2
voucherMaxTTL : int64 =900
claimCooldownSec : int64 =60
claimInitialGraceSec : int64 =300
init.334 : func() Inspect
init.335 : func() Inspect
init.336 : func() Inspect
maxGuildMembers : untyped bigint =(10 <untyped> bigint)
maxGuildNameLen : untyped bigint =(24 <untyped> bigint)
guildJSON : func(guildId string, name string, leader string, members int, createdAt int64) string Inspect
guildMemberCount : func(gid string) int Inspect
guildMeta : type =game33.guildMeta
guildMetas : map[string]game33.guildMeta Inspect
rewriteGuild : func(gid string) Inspect
CreateGuild : func(name string) string Inspect
JoinGuild : func(guildId string) Inspect
LeaveGuild : func() Inspect
PlayerGuild : func(addr string) string Inspect
GuildInfo : func(guildId string) string Inspect
TopGuilds : func(limit int) string Inspect
kvJSON : func(prefixAddr string, t *v0.Tree) string Inspect
AllBalances : func(playerAddr string) string Inspect
LifetimeMined : func(playerAddr string) string Inspect
PlayerXp : func(playerAddr string) string Inspect
Rewarded : func(playerAddr string) string Inspect
SkillRanks : func(playerAddr string) string Inspect
ToolLife : func(playerAddr string) string Inspect
OwnedTools : func(playerAddr string) string Inspect
PlayerProfile : func(playerAddr string) string Inspect
AllMiners : func(limit int, offset int) string Inspect
GetMedals : func(playerAddr string) string Inspect
DailyCheckinStatus : func(playerAddr string) string Inspect
ListTasks : func(string) string Inspect
Render : func(string) string Inspect
deductBalances : func(caller string, costs [][2]string) Inspect
guildRow : type =game33.guildRow
guildRows : type =game33.guildRows
minerRow : type =game33.minerRow
minerRows : type =game33.minerRows
VoucherMessage : func(kind string, player string, nonce int64, expiry int64, payload string) string Inspect
compactClaimPayload : func(coinsJson string) string Inspect
compactAchPayload : func(idsJson string) string Inspect
LastNonce : func(addr string) int64 Inspect
useVoucher : func(kind string, player string, nonce int64, expiry int64, payload string, sigHex string) Inspect
bestOwnedTool : func(callerAddr string) string Inspect
effectiveRateFor : func(tool string, r int) uint64 Inspect
loadPackedBuckets : func(addr string, nowTs int64) [7][2]uint64 Inspect
formatPackedBuckets : func(buckets [7][2]uint64) string Inspect
bucketState : func(allBuckets [7][2]uint64, r int, tool string, nowTs int64) (uint64, uint64) Inspect
enforceClaimRate : func(callerAddr string, byRarity [7]uint64, nowTs int64, tool string) Inspect
decrementToolLife : func(callerAddr string, totalCoins uint64, tool string) Inspect
parseCoinClaims : func(coinsJson string) ([]string, map[string]uint64, [7]uint64) Inspect
guildBonusPct : func(addr string) uint64 Inspect
creditMined : func(addr string, coinId string, amt uint64) uint64 Inspect
creditReward : func(addr string, coinId string, amt uint64) uint64 Inspect
ClaimAndMint : func(coinsJson string, nonce int64, expiry int64, sigHex string) string Inspect
ClaimMine : func(coinsJson string) Inspect
PendingMints : func(playerAddr string) string Inspect
ClaimAllowance : func(playerAddr string) string Inspect
lget : func(id string, f string) string Inspect
lset : func(id string, f string, v string) Inspect
renderLobby : func(id string) Inspect
touch : func(id string) Inspect
lastAction : func(id string) int64 Inspect
CreatePvpLobby : func(game string, coinId string, betAmount string) string Inspect
JoinPvpLobby : func(lobbyId string) Inspect
pvpWagered : func(id string) bool Inspect
CancelPvpLobby : func(lobbyId string) Inspect
memberOf : func(lobbyId string, addr string) bool Inspect
CommitPvpMove : func(lobbyId string, moveHash string) Inspect
validChoice : func(game string, choice string) bool Inspect
moveHash : func(choice string, salt string) string Inspect
RevealPvpMove : func(lobbyId string, choice string, salt string) Inspect
pvpWinner : func(game string, creator string, challenger string, cChoice string, chChoice string, cSalt string, chSalt string) string Inspect
settlePvp : func(lobbyId string, result string) Inspect
ClaimPvpTimeout : func(lobbyId string) Inspect
ExpireLobbies : func() Inspect
PvpLobby : func(lobbyId string) string Inspect
OpenLobbies : func() string Inspect
sha256Sum : func(s string) string Inspect
zeroPad : func(n uint64, w int) string Inspect
effectiveMaxLife : func(callerAddr string, toolId string) uint64 Inspect
ownsTool : func(addr string, toolId string) bool Inspect
Transfer : func(coinId string, toAddr string, amountStr string) Inspect
BuyTool : func(toolId string) Inspect
RepairTool : func(toolId string) Inspect
TrainSkill : func(skillId string) Inspect
parseGrindId : func(id string) (string, uint64, bool) Inspect
isValidAchievementId : func(id string) bool Inspect
achievementReward : func(addr string, id string) ([]game33.coinAmt, string) Inspect
claimAchievementsFor : func(addr string, ids []string, strict bool) int Inspect
ClaimAchievement : func(achievementId string, nonce int64, expiry int64, sigHex string) Inspect
BatchClaimAchievements : func(idsJson string, nonce int64, expiry int64, sigHex string) int Inspect
HasAchievement : func(addr string, id string) bool Inspect
parseDailyCheckin : func(raw string) (int64, int64) Inspect
DailyCheckin : func() Inspect
CreateTask : func(taskId string, desc string) Inspect
CompleteTask : func(taskId string) Inspect
CompleteTaskFor : func(player string, taskId string) Inspect
relayMaxTTL : int64 =300
relayVoucherMessage : func(kind string, player string, extra string, nonce int64, expiry int64) string Inspect
lastRelayNonce : func(player string) int64 Inspect
useRelayVoucher : func(kind string, player string, extra string, nonce int64, expiry int64, sigHex string) Inspect
requireRelay : func() Inspect
SetRelayAddress : func(addr string) Inspect
RelayAddress : func() string Inspect
RelayBuyTool : func(player string, toolId string, nonce int64, expiry int64, sigHex string) Inspect
RelayTrainSkill : func(player string, skillId string, nonce int64, expiry int64, sigHex string) Inspect
LastRelayNonce : func(addr string) int64 Inspect
slotsReels : untyped bigint =(5 <untyped> bigint)
slotsRows : untyped bigint =(4 <untyped> bigint)
slotsCells : untyped bigint =(20 <untyped> bigint)
slotsStripLen : untyped bigint =(40 <untyped> bigint)
slotsBetStep : uint64 =25
slotsMaxWinMult : uint64 =500
symWild : uint8 =0
symScatter : uint8 =8
symVault : uint8 =9
hsLandBelow : uint8 =8
hsRespins : untyped bigint =(3 <untyped> bigint)
hsMini : uint16 =101
hsMinor : uint16 =102
hsMajor : uint16 =103
hsGrand : uint16 =104
slotsStrip : untyped string ="8645732106457321645793216457326457364576"
slotsSymbolNames : [10]string Inspect
slotsPays : [8][3]uint64 Inspect
slotsPaylines : [25][5]uint8 Inspect
slotsScatterPay : [6]uint64 Inspect
slotsFreeSpins : [6]uint64 Inspect
slotsStream : type =game33.slotsStream
newSlotsStream : func(serverSeed string, clientSecret string, roundId string) *game33.slotsStream Inspect
slotsSpinGrid : func(s *game33.slotsStream) [20]uint8 Inspect
slotsLineMult : func(g *[20]uint8) (uint64, int) Inspect
slotsCount : func(g *[20]uint8, sym uint8) int Inspect
hsDrawValue : func(s *game33.slotsStream) uint16 Inspect
slotsHoldAndSpin : func(s *game33.slotsStream, g *[20]uint8) ([20]uint16, int, bool) Inspect
slotsGridString : func(g *[20]uint8) string Inspect
hsTilesString : func(t *[20]uint16) string Inspect
jsonStr : func(s string) string Inspect
sanitizeName : func(s string) string Inspect
isSafeId : func(s string, maxLen int) bool Inspect
isHex64 : func(s string) bool Inspect
parseStringRows : func(s string) [][]string Inspect
parseStringList : func(s string) []string Inspect
jparser : type =game33.jparser
getU : func(t *v0.Tree, key string) uint64 Inspect
setU : func(t *v0.Tree, key string, v uint64) Inspect
addU : func(t *v0.Tree, key string, d uint64) uint64 Inspect
balOf : func(addr string, coin string) uint64 Inspect
creditBal : func(addr string, coin string, amt uint64) Inspect
debitBal : func(addr string, coin string, amt uint64) Inspect