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

pad state

Back to all declarations

wugnotTokenKey

untyped string

Sapphire Gnoswap registry keys / role addresses (sapphire-1).

Value

"gno.land/r/gnoland/wugnot.wugnot"

gnsTokenKey

untyped string

Sapphire Gnoswap registry keys / role addresses (sapphire-1).

Value

"gno.land/r/gnoswap/gns.GNS"

gnoswapPoolAddrStr

untyped string

Sapphire Gnoswap registry keys / role addresses (sapphire-1).

Value

"g1dexaf6aqkkyr9yfy9d5up69lsn7ra80af34g5v"

gnoswapRouterAddrStr

untyped string

Sapphire Gnoswap registry keys / role addresses (sapphire-1).

Value

"g1vc883gshu5z7ytk5cdynhc8c2dh67pdp4cszkp"

listFund

type

listFund tracks assets pulled from the listing caller for refund / LP ugnot reimburse.

Value

pad.listFund

tryListOnGnoswap

func(l *pad.Launch, raisedUgnot int64, remainingTokens int64) bool

tryListOnGnoswap seeds a Gnoswap CL pool with remaining meme tokens + raised-sized WUGNOT as LP. CreatePool fee (fixed GNS amount) is paid from: 1. pre-funded GNS on pad (preferred - immune to GNOT/GNS price moves), else 2. ExactOut WUGNOT->GNS using SURPLUS inventory only (above raised), so LP depth stays equal to raised even when GNS is expensive. Returns true on success. Soft failure sets l.GnoswapNote and returns false (caller keeps internal CPMM). Does not pull from user - see prepareCallerListFunding.

Open
OID
03ef84…a52a:3
tryListOnGnoswap details

Inspect func

prepareCallerListFunding

func(l *pad.Launch, raisedUgnot int64) pad.listFund

prepareCallerListFunding fills pad inventory shortfall from the EOA caller via TransferFrom. padv14+ WUGNOT raise: Buy already TransferFrom WUGNOT to pad, so wBal >= raised at graduate in the normal case — only GNS fee (or small fee WUGNOT budget) may be short. Legacy ugnot-raise pads: wugnot.Deposit is EOA-only; caller wraps temp LP then reimbursed.

Open
OID
03ef84…a52a:5
prepareCallerListFunding details

Inspect func

listFeeWugnotPull

func() int64

listFeeWugnotPull is the WUGNOT amount pulled from the listing caller for ExactOut → GNS when they do not hold CreatePool fee in GNS. Kept well below GnoswapMaxFeeWugnot so List does not demand 5k+ GNOT wrap.

Open
OID
03ef84…a52a:6
listFeeWugnotPull details

Inspect func

pullWugnotFrom

func(from .uverse.address, to .uverse.address, amount int64) bool

pullWugnotFrom is intentionally a no-op pull. GRC20 TransferFrom from a realm often panics "insufficient allowance" even when Allowance(owner, pad) is set (spender frame resolves to EOA, not pad). Soft-fail instead so list can fall back to notes / surplus / pre-funded pad inventory. UI must pre-fund pad via wugnot.Transfer(pad, amount) and gns.Transfer(pad, fee) before RetryListGnoswap — never rely on Approve+TransferFrom in the same flow.

Open
OID
03ef84…a52a:7
pullWugnotFrom details

Inspect func

pullGnsFrom

func(from .uverse.address, to .uverse.address, amount int64) bool
Open
OID
03ef84…a52a:8
pullGnsFrom details

Inspect func

safeWugnotTransfer

func(to .uverse.address, amount int64)
Open
OID
03ef84…a52a:9
safeWugnotTransfer details

Inspect func

safeGnsTransfer

func(to .uverse.address, amount int64)
Open
OID
03ef84…a52a:10
safeGnsTransfer details

Inspect func

refundCallerListFunding

func(fund pad.listFund)
Open
OID
03ef84…a52a:11
refundCallerListFunding details

Inspect func

settleCallerListFunding

func(fund pad.listFund)

settleCallerListFunding returns unused fee-budget WUGNOT to the caller. LP shortfall pull is rare on WUGNOT-raise pads (raised already on pad); if it happened, reimburse in WUGNOT from any leftover pad balance after list.

Open
OID
03ef84…a52a:12
settleCallerListFunding details

Inspect func

listOnGnoswapWithFunding

func(l *pad.Launch, raisedUgnot int64, remainingTokens int64) bool

listOnGnoswapWithFunding is the full auto path: pull inventory from caller if needed, CreatePool+Mint, reimburse LP ugnot / refund on failure.

Open
OID
03ef84…a52a:13
listOnGnoswapWithFunding details

Inspect func

listNeedOf

func(l *pad.Launch) string

listNeedOf: poolU|wHave|wNeedLp|gnsHave|gnsNeed|feeGns|feeWugnotBudget|padAddr

Open
OID
03ef84…a52a:14
listNeedOf details

Inspect func

ListNeed

func(id string) string

ListNeed is the public query for the Token list wizard (default venue).

Open
OID
03ef84…a52a:15
ListNeed details

Inspect func

ListNeedFor

func(id string, venueId string) string

ListNeedFor is venue-aware; only gnoswap has a Need adapter today.

Open
OID
03ef84…a52a:16
ListNeedFor details

Inspect func

ListedOf

func(id string) bool

ListedOf reports whether the launch is listed on any venue.

Open
OID
03ef84…a52a:17
ListedOf details

Inspect func

ListPoolPathOf

func(id string) string

ListPoolPathOf returns the pool path after listing.

Open
OID
03ef84…a52a:18
ListPoolPathOf details

Inspect func

ListNoteOf

func(id string) string

ListNoteOf returns the listing status note.

Open
OID
03ef84…a52a:19
ListNoteOf details

Inspect func

swapWugnotForGNS

func(amountOutGNS int64, maxInWugnot int64) (spent int64, ok bool)
Open
OID
03ef84…a52a:20
swapWugnotForGNS details

Inspect func

computeSqrtPriceX96

func(amount0 int64, amount1 int64) string
Open
OID
03ef84…a52a:21
computeSqrtPriceX96 details

Inspect func

u256Sqrt

func(x *v1.Uint) *v1.Uint
Open
OID
03ef84…a52a:22
u256Sqrt details

Inspect func

alignedFullRangeTicks

func(spacing int32) (int32, int32)
Open
OID
03ef84…a52a:23
alignedFullRangeTicks details

Inspect func

GnoswapListedOf

func(id string) bool

GnoswapListedOf reports whether a launch was auto-listed on Gnoswap.

Open
OID
03ef84…a52a:24
GnoswapListedOf details

Inspect func

GnoswapPoolPathOf

func(id string) string

GnoswapPoolPathOf returns the Gnoswap pool path after listing (or empty).

Open
OID
03ef84…a52a:25
GnoswapPoolPathOf details

Inspect func

GnoswapNoteOf

func(id string) string

GnoswapNoteOf returns the listing status note.

Open
OID
03ef84…a52a:26
GnoswapNoteOf details

Inspect func

VenueGnoswap

untyped string

ListVenue IDs (compile-time switch in tryListVenue). Adding a new DEX means a new case + adapter file and a new pad version — Gno cannot dynamically import by path string.

Value

"gnoswap"

VenueZdex

untyped string

ListVenue IDs (compile-time switch in tryListVenue). Adding a new DEX means a new case + adapter file and a new pad version — Gno cannot dynamically import by path string.

Value

"zdex"

listVenueMeta

type

listVenueMeta is registry metadata (not a callable adapter).

Value

pad.listVenueMeta

listVenues

v0.Tree

// id -> \*listVenueMeta

Open
OID
03ef84…a52a:28
listVenues details

Inspect ref

defaultListVenue

string

Value

"zdex"

ensureListVenuesSeeded

func()
Open
OID
03ef84…a52a:30
ensureListVenuesSeeded details

Inspect func

registerListVenue

func(id string, label string, enabled bool, feeHint string)
Open
OID
03ef84…a52a:32
registerListVenue details

Inspect func

normalizeVenueID

func(venueId string) string
Open
OID
03ef84…a52a:33
normalizeVenueID details

Inspect func

venueEnabled

func(venueId string) bool
Open
OID
03ef84…a52a:34
venueEnabled details

Inspect func

DefaultListVenue

func() string

DefaultListVenue returns the venue id used when callers pass "".

Open
OID
03ef84…a52a:35
DefaultListVenue details

Inspect func

SetDefaultListVenue

func(venueId string)

SetDefaultListVenue sets the default list venue (protocol only).

Open
OID
03ef84…a52a:36
SetDefaultListVenue details

Inspect func

SetListVenue

func(id string, label string, enabled bool, feeAssetHint string)

SetListVenue registers or updates venue metadata (protocol only). Does not add compile-time dispatch — unknown ids stay non-listable until tryListVenue gains a case in a future pad version.

Open
OID
03ef84…a52a:37
SetListVenue details

Inspect func

ListVenues

func() string

ListVenues returns newline-separated "id|label|enabled|feeHint" (enabled 0|1).

Open
OID
03ef84…a52a:38
ListVenues details

Inspect func

ListVenueOf

func(id string) string

ListVenueOf returns the venue id used for a successful list (or "").

Open
OID
03ef84…a52a:39
ListVenueOf details

Inspect func

resetListVenuesForTest

func()

resetListVenuesForTest clears venue registry (unit tests).

Open
OID
03ef84…a52a:40
resetListVenuesForTest details

Inspect func

tryListVenue

func(l *pad.Launch, venueId string, raisedUgnot int64, liqTokens int64) bool

tryListVenue dispatches to a compile-time adapter. Unknown / disabled venues soft-fail with a note (no panic) so UI can show ListNeed guidance.

Open
OID
03ef84…a52a:41
tryListVenue details

Inspect func

launches

v0.Tree

// id -> \*Launch

Open
OID
03ef84…a52a:43
launches details

Inspect ref

bySymbol

v0.Tree

// symbol -> id string

Open
OID
03ef84…a52a:45
bySymbol details

Inspect ref

nextID

v0.ID

Value

<zero>

nextTokenID

v0.ID

// GRC20 identity sequence (shared for all launches)

Value

<zero>

padAddr

.uverse.address

Value

<gnolang.StringValue>

protocolAddr

.uverse.address

Value

<gnolang.StringValue>

protocolFees

int64

Value

0

protocolFeesPaid

int64

Value

0

inited

bool

Value

true

testSkipBanker

bool

Value

false

testForceGnoswapList

bool

Value

false

testForceZdexList

bool

Value

false

pointsEnabled

bool

Value

false

graduationUgnot

int64

Value

300000000000

listFeeGnsLive

int64

Value

100000000

totalWugnotCredit

int64

Value

0

totalListFeeGns

int64

Value

0

Trade

type

Trade is one price sample for charts (capped history per launch).

Value

pad.Trade

Launch

type

Launch is one meme market: curve phase then locked pool phase. token/ledger are unexported so external packages cannot Mint/Burn via field access.

Value

pad.Launch

Init

func()

Init sets the protocol treasury. First EOA caller becomes fee recipient (protocolAddr). Protocol trade fees accrue on-pad until ClaimProtocolFees (treasury only) or PushProtocolFees (anyone may push to treasury). Creator fees always need ClaimCreatorFees by the token creator. Deploy note: call Init with the wallet that should receive protocol fees (or TransferProtocol later). Gnoswap CreatePool GNS fee is paid to Gnoswap, not to this treasury.

Open
OID
03ef84…a52a:65
Init details

Inspect func

graduationThreshold

func() int64

graduationThreshold is the live raise target (ugnot). Falls back to const if unset.

Open
OID
03ef84…a52a:67
graduationThreshold details

Inspect func

SetGraduationThreshold

func(ugnot int64)

SetGraduationThreshold updates the live raise target (ugnot, 1 GNOT = 1e6). Protocol/deploy wallet only. Affects open curve launches (remaining raise / ready).

Open
OID
03ef84…a52a:68
SetGraduationThreshold details

Inspect func

GraduationThresholdLive

func() int64

GraduationThresholdLive returns the live raise target (ugnot) for UIs/qeval.

Open
OID
03ef84…a52a:69
GraduationThresholdLive details

Inspect func

SetListFeeGns

func(gns int64)

SetListFeeGns updates Create-time GNS escrow required for new launches. Protocol/deploy wallet only. Does not change already-escrowed launches.

Open
OID
03ef84…a52a:70
SetListFeeGns details

Inspect func

creditProtocol

func(amt int64)

creditProtocol accrues protocol ugnot liability on the pad realm. Cash stays in pad until ClaimProtocolFees / PushProtocolFees.

Open
OID
03ef84…a52a:71
creditProtocol details

Inspect func

SetPointsEnabled

func(on bool)

SetPointsEnabled toggles pointsv2 notifications (protocol admin only). pointsv2 must AllowPad(this package path) or OnTrade/OnCreate will panic and revert the trade.

Open
OID
03ef84…a52a:73
SetPointsEnabled details

Inspect func

PointsEnabled

func() bool

PointsEnabled reports whether pad notifies pointsv2 after trades/creates.

Open
OID
03ef84…a52a:74
PointsEnabled details

Inspect func

notifyTrade

func(trader .uverse.address, id string, side int64, volumeUgnot int64)
Open
OID
03ef84…a52a:75
notifyTrade details

Inspect func

notifyCreate

func(creator .uverse.address, id string)
Open
OID
03ef84…a52a:76
notifyCreate details

Inspect func

mustLaunch

func(id string) *pad.Launch
Open
OID
03ef84…a52a:77
mustLaunch details

Inspect func

balOf

func(l *pad.Launch, addr .uverse.address) int64
Open
OID
03ef84…a52a:78
balOf details

Inspect func

addBal

func(l *pad.Launch, addr .uverse.address, delta int64)

addBal mints (delta>0) or burns (delta\<0) GRC20 via pad-owned PrivateLedger.

Open
OID
03ef84…a52a:79
addBal details

Inspect func

requireMinOut

func(got int64, minOut int64, what string)
Open
OID
03ef84…a52a:80
requireMinOut details

Inspect func

snipeBoughtOf

func(l *pad.Launch, buyer .uverse.address) int64
Open
OID
03ef84…a52a:81
snipeBoughtOf details

Inspect func

checkAndAddSnipe

func(l *pad.Launch, buyer .uverse.address, tokensOut int64)
Open
OID
03ef84…a52a:82
checkAndAddSnipe details

Inspect func

sendUgnot

func(to .uverse.address, amount int64)
Open
OID
03ef84…a52a:83
sendUgnot details

Inspect func

requireUserPayment

func() int64
Open
OID
03ef84…a52a:84
requireUserPayment details

Inspect func

reservedWugnot

func() int64

reservedWugnot is WUGNOT already committed (markets/fees/user prepaid credits). Excludes bank-only liabilities (create bond ugnot).

Open
OID
03ef84…a52a:85
reservedWugnot details

Inspect func

freeWugnotOnPad

func() int64

freeWugnotOnPad is WUGNOT on pad above reserved commitments. After user wugnot.Transfer(pad, amt), free rises; Buy locks free into caller credit.

Open
OID
03ef84…a52a:86
freeWugnotOnPad details

Inspect func

FreeWugnot

func() string

FreeWugnot is free|have|reserved|totalCredit for UI preflight.

Open
OID
03ef84…a52a:87
FreeWugnot details

Inspect func

prepaidOf

func(addr .uverse.address) int64
Open
OID
03ef84…a52a:88
prepaidOf details

Inspect func

addPrepaid

func(addr .uverse.address, amount int64)
Open
OID
03ef84…a52a:89
addPrepaid details

Inspect func

subPrepaid

func(addr .uverse.address, amount int64)
Open
OID
03ef84…a52a:90
subPrepaid details

Inspect func

PrepaidBalance

func() int64

PrepaidBalance returns caller's claimable WUGNOT credit on this pad.

Open
OID
03ef84…a52a:91
PrepaidBalance details

Inspect func

PrepaidOf

func(addr string) int64

PrepaidOf returns claimable credit for an address (read helper).

Open
OID
03ef84…a52a:92
PrepaidOf details

Inspect func

ClaimWugnot

func() int64

ClaimWugnot withdraws all of the caller's prepaid WUGNOT credit to their wallet. Safe after Buy overpay or after graduate/list — excess stays claimable until claimed.

Open
OID
03ef84…a52a:93
ClaimWugnot details

Inspect func

takeWugnotIn

func(amount int64) int64

takeWugnotIn collects amount WUGNOT as payment for Buy/SwapBuy. 1\) Auto-lock free float into caller's prepaid (user must Transfer to pad first). 2) Spend amount from prepaid (overpay stays as credit via creditRefund). No TransferFrom. Tests (testSkipBanker): OriginSend ugnot as synthetic collateral units.

Open
OID
03ef84…a52a:94
takeWugnotIn details

Inspect func

creditRefund

func(buyer .uverse.address, amount int64)

creditRefund keeps unused Buy WUGNOT as claimable prepaid (not instant wallet refund). User calls ClaimWugnot after buy / after list when convenient.

Open
OID
03ef84…a52a:95
creditRefund details

Inspect func

payWugnotOut

func(to .uverse.address, amount int64)

payWugnotOut sends WUGNOT from pad to user (production). Tests: pay ugnot via banker when testSkipBanker.

Open
OID
03ef84…a52a:96
payWugnotOut details

Inspect func

noteBuyer

func(l *pad.Launch, buyer .uverse.address)
Open
OID
03ef84…a52a:97
noteBuyer details

Inspect func

spotPriceScaled

func(l *pad.Launch) int64

spotPriceScaled returns ugnot/token \* 1e6 from current curve or pool reserves.

Open
OID
03ef84…a52a:99
spotPriceScaled details

Inspect func

recordTrade

func(l *pad.Launch, side int, ugnot int64, tokens int64)
Open
OID
03ef84…a52a:100
recordTrade details

Inspect func

maybeRefundBond

func(l *pad.Launch)
Open
OID
03ef84…a52a:101
maybeRefundBond details

Inspect func

requiredCreateBond

func() int64

requiredCreateBond returns ugnot the creator must send. Production: createbond.CurrentBondUgnot() (promo or normal). Unit tests (testSkipBanker): local CreateBondUgnot constant.

Open
OID
03ef84…a52a:102
requiredCreateBond details

Inspect func

CreateBondRequired

func() int64

CreateBondRequired is a public alias for UIs / qeval (same as requiredCreateBond).

Open
OID
03ef84…a52a:103
CreateBondRequired details

Inspect func

requiredListFeeGns

func() int64

requiredListFeeGns returns GNS base units the creator must pre-fund (free on pad). Live value from SetListFeeGns; falls back to ListFeeGns const.

Open
OID
03ef84…a52a:104
requiredListFeeGns details

Inspect func

ListFeeRequired

func() int64

ListFeeRequired is a public alias for UIs / qeval.

Open
OID
03ef84…a52a:105
ListFeeRequired details

Inspect func

freeGnsOnPad

func() int64

freeGnsOnPad is GNS on pad above per-launch list-fee escrow.

Open
OID
03ef84…a52a:106
freeGnsOnPad details

Inspect func

FreeGns

func() string

FreeGns returns free|have|reserved for UI preflight (GNS list fee).

Open
OID
03ef84…a52a:107
FreeGns details

Inspect func

lockListFeeEscrow

func(l *pad.Launch, amt int64)

lockListFeeEscrow earmarks free GNS for this launch's CreatePool fee.

Open
OID
03ef84…a52a:108
lockListFeeEscrow details

Inspect func

listFeeForVenue

func(venueId string) int64

listFeeForVenue: gnoswap → ListFeeRequired; zdex / other → 0.

Open
OID
03ef84…a52a:109
listFeeForVenue details

Inspect func

ListFeeRequiredFor

func(venueId string) int64

ListFeeRequiredFor is venue-aware Create fee for UI preflight.

Open
OID
03ef84…a52a:110
ListFeeRequiredFor details

Inspect func

unlockListFeeEscrow

func(l *pad.Launch, refund bool)

unlockListFeeEscrow clears launch GNS escrow; refund sends GNS back to creator.

Open
OID
03ef84…a52a:111
unlockListFeeEscrow details

Inspect func

syncListFeeForVenue

func(l *pad.Launch, vid string)

syncListFeeForVenue adjusts escrow after PreferredVenue change (pre-list only).

Open
OID
03ef84…a52a:112
syncListFeeForVenue details

Inspect func

consumeListFeeEscrow

func(l *pad.Launch)

consumeListFeeEscrow clears launch escrow after successful Gnoswap list (CreatePool spent feeNeed GNS from pad balance).

Open
OID
03ef84…a52a:113
consumeListFeeEscrow details

Inspect func

ClaimListFee

func(id string) int64

ClaimListFee refunds Create-time GNS escrow to the token creator if still unlisted. Use when graduate/list will not complete or creator abandons listing.

Open
OID
03ef84…a52a:114
ClaimListFee details

Inspect func

Create

func(name string, symbol string, uri string) string

Create deploys a fair-launch meme. Bond amount from bond realm (or fallback const). Also locks ListFeeGns free GNS (creator must Transfer GNS to pad first). No pre-mint; all tradeable float starts on the bonding curve.

Open
OID
03ef84…a52a:115
Create details

Inspect func

CreateWithVenue

func(name string, symbol string, uri string, venueId string) string

CreateWithVenue is Create + PreferredVenue in one MsgCall (fee escrow follows venue). venueId: "zdex" → no GNS list escrow; "gnoswap" → ListFeeRequired GNS.

Open
OID
03ef84…a52a:116
CreateWithVenue details

Inspect func

finishCreate

func(id string, name string, symbol string, uri string, creator .uverse.address, token *v0.Token, ledger *v0.PrivateLedger, regKey string, bondNeed int64, pref string) string
Open
OID
03ef84…a52a:117
finishCreate details

Inspect func

AdenaPathOf

func(id string) string

AdenaPathOf returns the grc20reg / Adena token key: packagePath.SYMBOL (Token.ID is packagePath.SYMBOL.seq - Adena rejects that form).

Open
OID
03ef84…a52a:118
AdenaPathOf details

Inspect func

adenaKeyFromTokenID

func(tokenID string, symbol string) string

adenaKeyFromTokenID strips the trailing .seq from Token.ID when present.

Open
OID
03ef84…a52a:119
adenaKeyFromTokenID details

Inspect func

maxGrossForNetIn

func(maxNet int64, sentMax int64) int64

maxGrossForNetIn finds largest gross ugnot \<= sentMax whose fee-split netIn \<= maxNet.

Open
OID
03ef84…a52a:120
maxGrossForNetIn details

Inspect func

readyToGraduate

func(l *pad.Launch) bool

readyToGraduate is true when raise met the threshold, or the entire curve float is sold (sold-out escape: threshold may be unreachable with bad virtuals).

Open
OID
03ef84…a52a:121
readyToGraduate details

Inspect func

Buy

func(id string, amountWugnot int64, minTokensOut int64) int64

Buy spends WUGNOT on the bonding curve; credits tokens. amountWugnot: max to spend (may overpay). UI: Deposit + Transfer(pad, amt) + Buy. Overpay stays as claimable prepaid — ClaimWugnot anytime (incl. after list). minTokensOut: slippage floor (0 = disabled). Auto-graduates at threshold or sold-out. Production: collateral is real WUGNOT on pad -> Graduate can auto-list Gnoswap. Tests (testSkipBanker): amountWugnot ignored; OriginSend ugnot is used as units. Last-fill (no overshoot): 1. Cap net so RaisedUgnot never exceeds graduationThreshold() (refund excess WUGNOT). 2. Cap by remaining curve tokens (CurveSupply - RealSold). If the curve is already sold out (or raise already filled), Buy refunds the full take and graduates when ready - no panic so users are not stuck mid-tx.

Open
OID
03ef84…a52a:122
Buy details

Inspect func

RemainingRaiseUgnot

func(id string) int64

RemainingRaiseUgnot is net ugnot still needed to hit graduationThreshold() (0 if met/over).

Open
OID
03ef84…a52a:123
RemainingRaiseUgnot details

Inspect func

Sell

func(id string, tokensIn int64, minWugnotOut int64) int64

Sell burns curve tokens and pays WUGNOT (fee on output). minWugnotOut: slippage floor (0 = disabled). User may wugnot.Withdraw to ugnot.

Open
OID
03ef84…a52a:124
Sell details

Inspect func

Graduate

func(id string)

Graduate permissionlessly moves a ready curve into a permanently locked CPMM. Ready when RaisedUgnot >= graduationThreshold(), or when RealSold >= CurveSupply with RaisedUgnot > 0 (sold-out before threshold - escape hatch for unreachable raise).

Open
OID
03ef84…a52a:125
Graduate details

Inspect func

SetPreferredVenue

func(id string, venueId string)

SetPreferredVenue sets the DEX target used when RetryList(id, "") is called. Creator or protocol only; locked once listed. Syncs Create-time GNS escrow (gnoswap locks ListFeeRequired; zdex unlocks/refunds escrow).

Open
OID
03ef84…a52a:127
SetPreferredVenue details

Inspect func

PreferredVenueOf

func(id string) string

PreferredVenueOf returns the Create-time / SetPreferredVenue target.

Open
OID
03ef84…a52a:128
PreferredVenueOf details

Inspect func

ListSeedReleasedOf

func(id string) bool

ListSeedReleasedOf reports whether ReleaseListSeed already ran.

Open
OID
03ef84…a52a:129
ListSeedReleasedOf details

Inspect func

ReleaseListSeed

func(id string)

ReleaseListSeed sends graduated internal-CPMM seed to the creator for EOA zdex CreatePool: - PoolUgnot as WUGNOT Transfer to creator (EOA may wugnot.Withdraw → ugnot OriginSend) - PoolToken minted as GRC20 to creator (was pad-accounting only) PoolUgnot/PoolToken kept as listing-size record; reservedWugnot skips via ListSeedReleased. Disables internal SwapBuy/Sell. Creator or protocol may call; assets always go to creator.

Open
OID
03ef84…a52a:130
ReleaseListSeed details

Inspect func

ConfirmZdexList

func(id string, poolId string)

ConfirmZdexList marks a launch listed on zdex after EOA CreatePool succeeded. poolId e.g. "ugnot|SYMBOL" (must be non-empty; no on-chain pool verify). Creator or protocol. Prefer ReleaseListSeed first when pad still holds LP seed.

Open
OID
03ef84…a52a:131
ConfirmZdexList details

Inspect func

RetryList

func(id string, venueId string) bool

RetryList lists a graduated launch on the chosen venue. Permissionless EOA MsgCall. Uses PoolUgnot / PoolToken (curve-spot sized). venueId: empty → PreferredVenue → DefaultListVenue(); unknown/disabled → soft-fail note.

Open
OID
03ef84…a52a:132
RetryList details

Inspect func

RetryListGnoswap

func(id string) bool

RetryListGnoswap is the Gnoswap-specific wrapper (compat for existing UI).

Open
OID
03ef84…a52a:133
RetryListGnoswap details

Inspect func

TokenIDOf

func(id string) string

TokenIDOf returns the GRC20 Token.ID() for a launch.

Open
OID
03ef84…a52a:134
TokenIDOf details

Inspect func

GRC20Bank

func(id string) *v0.Token

GRC20Bank returns the underlying \*grc20.Token for interop (metadata / external DEX). Does not expose PrivateLedger - mint/burn stay pad-only.

Open
OID
03ef84…a52a:135
GRC20Bank details

Inspect func

SwapBuy

func(id string, amountWugnot int64, minTokensOut int64) int64

SwapBuy buys tokens from the graduated internal pool with WUGNOT. amountWugnot: max to spend (Approve pad). minTokensOut: slippage (0 = off). Disabled when listed on Gnoswap (trade via router).

Open
OID
03ef84…a52a:136
SwapBuy details

Inspect func

SwapSell

func(id string, tokensIn int64, minWugnotOut int64) int64

SwapSell sells tokens into the graduated pool for WUGNOT. minWugnotOut: slippage floor (0 = disabled).

Open
OID
03ef84…a52a:137
SwapSell details

Inspect func

Transfer

func(id string, to .uverse.address, amount int64)

Transfer moves GRC20 tokens between addresses (user-initiated).

Open
OID
03ef84…a52a:138
Transfer details

Inspect func

Approve

func(id string, spender .uverse.address, amount int64)

Approve sets GRC20 allowance so DEX/contracts can TransferFrom.

Open
OID
03ef84…a52a:139
Approve details

Inspect func

TransferFrom

func(id string, from .uverse.address, to .uverse.address, amount int64)

TransferFrom spends allowance: spender = MsgCall EOA caller. Enables DEX / routers that hold allowance from Approve.

Open
OID
03ef84…a52a:140
TransferFrom details

Inspect func

ClaimCreatorFees

func(id string) int64

ClaimCreatorFees withdraws accrued creator fees for a launch. Only the token creator may claim. Fees stay on pad until claimed.

Open
OID
03ef84…a52a:141
ClaimCreatorFees details

Inspect func

payoutProtocolFees

func() int64

payoutProtocolFees sends all pending protocolFees to protocolAddr. Shared by ClaimProtocolFees and PushProtocolFees.

Open
OID
03ef84…a52a:142
payoutProtocolFees details

Inspect func

ClaimProtocolFees

func() int64

ClaimProtocolFees withdraws pending protocol fees to protocolAddr. Only the current protocol treasury key may call (same wallet that Init'd, unless TransferProtocol was used).

Open
OID
03ef84…a52a:143
ClaimProtocolFees details

Inspect func

PushProtocolFees

func() int64

PushProtocolFees sends pending protocol fees to protocolAddr. Permissionless: anyone may call so treasury can be paid without the protocol key signing (still only pays the configured protocolAddr).

Open
OID
03ef84…a52a:144
PushProtocolFees details

Inspect func

TransferProtocol

func(newAddr .uverse.address)

TransferProtocol rotates the protocol fee recipient (current protocol only). Pending protocolFees stay on pad until claimed/pushed to the \*new\* address.

Open
OID
03ef84…a52a:145
TransferProtocol details

Inspect func

ProtocolAddress

func() string

ProtocolAddress returns the current protocol treasury address (bech32).

Open
OID
03ef84…a52a:146
ProtocolAddress details

Inspect func

ProtocolFeesPaid

func() int64

ProtocolFeesPaid returns lifetime ugnot already paid out to the treasury.

Open
OID
03ef84…a52a:147
ProtocolFeesPaid details

Inspect func

FeeInfo

func() string

FeeInfo returns protocolAddr|pendingUgnot|paidUgnot for UIs.

Open
OID
03ef84…a52a:148
FeeInfo details

Inspect func

PadAddress

func() string

PadAddress returns this pad realm's bech32 package address (fund WUGNOT here).

Open
OID
03ef84…a52a:149
PadAddress details

Inspect func

AdminInfo

func() string

AdminInfo is a single-line dashboard snapshot for the ops UI: protocolAddr|pendingFees|paidFees|reservedUgnot|launchCount|pointsOn|inited|padAddr pointsOn/inited are 0|1.

Open
OID
03ef84…a52a:150
AdminInfo details

Inspect func

IsProtocol

func(addr string) bool

IsProtocol reports whether addr is the current treasury (for UI gating).

Open
OID
03ef84…a52a:151
IsProtocol details

Inspect func

reservedUgnot

func() int64

reservedUgnot is ugnot the pad must keep to honor user/creator liabilities and active markets (curve raised, internal CPMM, bonds, pending fees).

Open
OID
03ef84…a52a:152
reservedUgnot details

Inspect func

ReservedUgnot

func() int64

ReservedUgnot is ugnot the pad must keep for markets + pending claims.

Open
OID
03ef84…a52a:153
ReservedUgnot details

Inspect func

freeUgnot

func() int64

freeUgnot reports bank ugnot above reserved liabilities (0 if short/test).

Open
OID
03ef84…a52a:154
freeUgnot details

Inspect func

WithdrawProtocolUgnot

func(amount int64) int64

WithdrawProtocolUgnot lets the treasury pull free ugnot from the pad bank (e.g. raised backlog after Gnoswap list, to re-wrap as WUGNOT inventory). Capped by free balance; panics if amount > free.

Open
OID
03ef84…a52a:155
WithdrawProtocolUgnot details

Inspect func

BalanceOf

func(id string, owner .uverse.address) int64
Open
OID
03ef84…a52a:156
BalanceOf details

Inspect func

ListBuyers

func(id string) string

ListBuyers returns unique buyer addresses (one per line), capped for query size. Only addresses that bought at least once on this pad (UniqueBuyers). Not full GRC20 holders who received tokens via transfer.

Open
OID
03ef84…a52a:157
ListBuyers details

Inspect func

GetRaised

func(id string) int64
Open
OID
03ef84…a52a:159
GetRaised details

Inspect func

GetPool

func(id string) (ugnot int64, token int64)
Open
OID
03ef84…a52a:160
GetPool details

Inspect func

GetCreatorFees

func(id string) int64
Open
OID
03ef84…a52a:161
GetCreatorFees details

Inspect func

ResolveSymbol

func(symbol string) string
Open
OID
03ef84…a52a:164
ResolveSymbol details

Inspect func

ListIDs

func() string

ListIDs returns newline-separated launch IDs (sorted by AVL key / creation order).

Open
OID
03ef84…a52a:165
ListIDs details

Inspect func

LaunchInfo

func(id string) string

LaunchInfo returns a single-line pipe-delimited summary for UIs/indexers: id|name|symbol|status|raised|sold|buyers|creatorFees|poolUgnot|poolToken|uri|creator|virtualUgnot|virtualToken|created|tokenID|gnoswapReady|gnoswapListed|gnoswapPoolPath|gnoswapNote|listVenue status: 0=curve 1=graduated; gnoswapReady/listed: 0|1 gnoswapNote: optional (padv12+); pipes stripped for delimiter safety. listVenue: optional (padv23+); empty if unlisted.

Open
OID
03ef84…a52a:166
LaunchInfo details

Inspect func

ParamsInfo

func() string

ParamsInfo returns parameters for UI display. total|curve|poolSeed|gradThreshold|feeBps|createBond|listFeeGns createBond is live from bond realm when not in unit-test mode. listFeeGns: Create-time GNS escrow required (padv20+).

Open
OID
03ef84…a52a:167
ParamsInfo details

Inspect func

TradeHistory

func(id string) string

TradeHistory returns newline-separated chart points: height|side|ugnot|tokens|priceScaled side: 0=buy 1=sell 2=open/graduate. Ordered oldest -> newest.

Open
OID
03ef84…a52a:168
TradeHistory details

Inspect func

TradeCount

func(id string) int

TradeCount returns number of stored chart samples for a launch.

Open
OID
03ef84…a52a:169
TradeCount details

Inspect func

resetForTest

func()

resetForTest clears package state between unit tests.

Open
OID
03ef84…a52a:170
resetForTest details

Inspect func

TotalSupply

int64

Value

1000000000

CurveSupply

int64

// sold on bonding curve

Value

800000000

PoolSeed

int64

Value

200000000

VirtualUgnot0

int64

// mainnet: max raise ≥ 300k GNOT

Value

102375071625

VirtualToken0

int64

// virtual token side

Value

1073000191

GraduationThreshold

int64

// 300\_000 GNOT (SetGraduationThreshold later)

Value

300000000000

FeeBPS

int64

Value

120

CreatorFeeShareBPS

int64

Value

4000

ProtocolFeeShareBPS

int64

Value

4000

CreateBondUgnot

int64

// 150 GNOT fallback; live = bond realm

Value

150000000

BondRefundBuyers

int

Value

5

BondRefundMinRaised

int64

// >=5 GNOT raised

Value

5000000

BondRefundMaxHeights

int64

Value

100000

AntiSnipeHeights

int64

Value

20

AntiSnipeMaxBuyBPS

int64

// 5% per address in window

Value

500

StatusCurve

untyped bigint

Value

(0 <untyped> bigint)

StatusGraduated

untyped bigint

Value

(1 <untyped> bigint)

MaxTradeHistory

untyped bigint

Value

(128 <untyped> bigint)

TradeSideBuy

untyped bigint

Value

(0 <untyped> bigint)

TradeSideSell

untyped bigint

Value

(1 <untyped> bigint)

TradeSideOpen

untyped bigint

// initial listing mark

Value

(2 <untyped> bigint)

DenomUgnot

untyped string

Value

"ugnot"

GnoswapFeeTier

uint32

// 0.3% meme tier

Value

3000

GnoswapTickSpacing

int32

Value

60

GnoswapMinTick

int32

Value

-887272

GnoswapMaxTick

int32

Value

887272

GnoswapMaxFeeWugnot

int64

// 1500 GNOT

Value

1500000000

ListFeeGns

int64

Value

100000000

Render

func(path string) string

Render provides on-chain discovery (gnoweb). Read-only by convention. Paths: "" - home / list token/{id} - launch detail help - API help

Open
OID
03ef84…a52a:171
Render details

Inspect func

renderToken

func(id string) string
Open
OID
03ef84…a52a:175
renderToken details

Inspect func

progressBar

func(pct int64) string
Open
OID
03ef84…a52a:176
progressBar details

Inspect func

tryListOnZdex

func(l *pad.Launch, raisedUgnot int64, liqTokens int64) bool

tryListOnZdex — stub until Zdex hub allows farm/realm CreatePool. Live Pearl/mainnet: CreatePool is EOA-only + requireListed. Pad path today: 1. ReleaseListSeed(id) — WUGNOT + minted PoolToken → creator 2. EOA: optional wugnot.Withdraw → Approve(zdex RealmAddr) → CreatePool 3. ConfirmZdexList(id, poolId) — mark ListVenue=zdex Pearl hub: gno.land/r/g1n4pl5uc4yt5r96m9w6fmdznx3x0jyg8l6arhmt/zdex/v3 CreatePool(cur, tokenKey, symbol, amountU, amountT, feeBps) string

Open
OID
03ef84…a52a:178
tryListOnZdex details

Inspect func
wugnotTokenKey : untyped string ="gno.land/r/gnoland/wugnot.wugnot"
gnsTokenKey : untyped string ="gno.land/r/gnoswap/gns.GNS"
gnoswapPoolAddrStr : untyped string ="g1dexaf6aqkkyr9yfy9d5up69lsn7ra80af34g5v"
gnoswapRouterAddrStr : untyped string ="g1vc883gshu5z7ytk5cdynhc8c2dh67pdp4cszkp"
listFund : type =pad.listFund
tryListOnGnoswap : func(l *pad.Launch, raisedUgnot int64, remainingTokens int64) bool Inspect
prepareCallerListFunding : func(l *pad.Launch, raisedUgnot int64) pad.listFund Inspect
listFeeWugnotPull : func() int64 Inspect
pullWugnotFrom : func(from .uverse.address, to .uverse.address, amount int64) bool Inspect
pullGnsFrom : func(from .uverse.address, to .uverse.address, amount int64) bool Inspect
safeWugnotTransfer : func(to .uverse.address, amount int64) Inspect
safeGnsTransfer : func(to .uverse.address, amount int64) Inspect
refundCallerListFunding : func(fund pad.listFund) Inspect
settleCallerListFunding : func(fund pad.listFund) Inspect
listOnGnoswapWithFunding : func(l *pad.Launch, raisedUgnot int64, remainingTokens int64) bool Inspect
listNeedOf : func(l *pad.Launch) string Inspect
ListNeed : func(id string) string Inspect
ListNeedFor : func(id string, venueId string) string Inspect
ListedOf : func(id string) bool Inspect
ListPoolPathOf : func(id string) string Inspect
ListNoteOf : func(id string) string Inspect
swapWugnotForGNS : func(amountOutGNS int64, maxInWugnot int64) (spent int64, ok bool) Inspect
computeSqrtPriceX96 : func(amount0 int64, amount1 int64) string Inspect
u256Sqrt : func(x *v1.Uint) *v1.Uint Inspect
alignedFullRangeTicks : func(spacing int32) (int32, int32) Inspect
GnoswapListedOf : func(id string) bool Inspect
GnoswapPoolPathOf : func(id string) string Inspect
GnoswapNoteOf : func(id string) string Inspect
VenueGnoswap : untyped string ="gnoswap"
VenueZdex : untyped string ="zdex"
listVenueMeta : type =pad.listVenueMeta
listVenues : v0.Tree Inspect
defaultListVenue : string ="zdex"
ensureListVenuesSeeded : func() Inspect
registerListVenue : func(id string, label string, enabled bool, feeHint string) Inspect
normalizeVenueID : func(venueId string) string Inspect
venueEnabled : func(venueId string) bool Inspect
DefaultListVenue : func() string Inspect
SetDefaultListVenue : func(venueId string) Inspect
SetListVenue : func(id string, label string, enabled bool, feeAssetHint string) Inspect
ListVenues : func() string Inspect
ListVenueOf : func(id string) string Inspect
resetListVenuesForTest : func() Inspect
tryListVenue : func(l *pad.Launch, venueId string, raisedUgnot int64, liqTokens int64) bool Inspect
launches : v0.Tree Inspect
bySymbol : v0.Tree Inspect
nextID : v0.ID =<zero>
nextTokenID : v0.ID =<zero>
padAddr : .uverse.address =<gnolang.StringValue>
protocolAddr : .uverse.address =<gnolang.StringValue>
protocolFees : int64 =0
protocolFeesPaid : int64 =0
inited : bool =true
testSkipBanker : bool =false
testForceGnoswapList : bool =false
testForceZdexList : bool =false
pointsEnabled : bool =false
graduationUgnot : int64 =300000000000
listFeeGnsLive : int64 =100000000
wugnotCredit : v0.Tree Inspect
totalWugnotCredit : int64 =0
totalListFeeGns : int64 =0
init.62 : func() Inspect
Trade : type =pad.Trade
Launch : type =pad.Launch
Init : func() Inspect
requireProtocol : func() Inspect
graduationThreshold : func() int64 Inspect
SetGraduationThreshold : func(ugnot int64) Inspect
GraduationThresholdLive : func() int64 Inspect
SetListFeeGns : func(gns int64) Inspect
creditProtocol : func(amt int64) Inspect
requireInit : func() Inspect
SetPointsEnabled : func(on bool) Inspect
PointsEnabled : func() bool Inspect
notifyTrade : func(trader .uverse.address, id string, side int64, volumeUgnot int64) Inspect
notifyCreate : func(creator .uverse.address, id string) Inspect
mustLaunch : func(id string) *pad.Launch Inspect
balOf : func(l *pad.Launch, addr .uverse.address) int64 Inspect
addBal : func(l *pad.Launch, addr .uverse.address, delta int64) Inspect
requireMinOut : func(got int64, minOut int64, what string) Inspect
snipeBoughtOf : func(l *pad.Launch, buyer .uverse.address) int64 Inspect
checkAndAddSnipe : func(l *pad.Launch, buyer .uverse.address, tokensOut int64) Inspect
sendUgnot : func(to .uverse.address, amount int64) Inspect
requireUserPayment : func() int64 Inspect
reservedWugnot : func() int64 Inspect
freeWugnotOnPad : func() int64 Inspect
FreeWugnot : func() string Inspect
prepaidOf : func(addr .uverse.address) int64 Inspect
addPrepaid : func(addr .uverse.address, amount int64) Inspect
subPrepaid : func(addr .uverse.address, amount int64) Inspect
PrepaidBalance : func() int64 Inspect
PrepaidOf : func(addr string) int64 Inspect
ClaimWugnot : func() int64 Inspect
takeWugnotIn : func(amount int64) int64 Inspect
creditRefund : func(buyer .uverse.address, amount int64) Inspect
payWugnotOut : func(to .uverse.address, amount int64) Inspect
noteBuyer : func(l *pad.Launch, buyer .uverse.address) Inspect
tradeKey : func(n int64) string Inspect
spotPriceScaled : func(l *pad.Launch) int64 Inspect
recordTrade : func(l *pad.Launch, side int, ugnot int64, tokens int64) Inspect
maybeRefundBond : func(l *pad.Launch) Inspect
requiredCreateBond : func() int64 Inspect
CreateBondRequired : func() int64 Inspect
requiredListFeeGns : func() int64 Inspect
ListFeeRequired : func() int64 Inspect
freeGnsOnPad : func() int64 Inspect
FreeGns : func() string Inspect
lockListFeeEscrow : func(l *pad.Launch, amt int64) Inspect
listFeeForVenue : func(venueId string) int64 Inspect
ListFeeRequiredFor : func(venueId string) int64 Inspect
unlockListFeeEscrow : func(l *pad.Launch, refund bool) Inspect
syncListFeeForVenue : func(l *pad.Launch, vid string) Inspect
consumeListFeeEscrow : func(l *pad.Launch) Inspect
ClaimListFee : func(id string) int64 Inspect
Create : func(name string, symbol string, uri string) string Inspect
CreateWithVenue : func(name string, symbol string, uri string, venueId string) string Inspect
finishCreate : func(id string, name string, symbol string, uri string, creator .uverse.address, token *v0.Token, ledger *v0.PrivateLedger, regKey string, bondNeed int64, pref string) string Inspect
AdenaPathOf : func(id string) string Inspect
adenaKeyFromTokenID : func(tokenID string, symbol string) string Inspect
maxGrossForNetIn : func(maxNet int64, sentMax int64) int64 Inspect
readyToGraduate : func(l *pad.Launch) bool Inspect
Buy : func(id string, amountWugnot int64, minTokensOut int64) int64 Inspect
RemainingRaiseUgnot : func(id string) int64 Inspect
Sell : func(id string, tokensIn int64, minWugnotOut int64) int64 Inspect
Graduate : func(id string) Inspect
graduate : func(l *pad.Launch) Inspect
SetPreferredVenue : func(id string, venueId string) Inspect
PreferredVenueOf : func(id string) string Inspect
ListSeedReleasedOf : func(id string) bool Inspect
ReleaseListSeed : func(id string) Inspect
ConfirmZdexList : func(id string, poolId string) Inspect
RetryList : func(id string, venueId string) bool Inspect
RetryListGnoswap : func(id string) bool Inspect
TokenIDOf : func(id string) string Inspect
GRC20Bank : func(id string) *v0.Token Inspect
SwapBuy : func(id string, amountWugnot int64, minTokensOut int64) int64 Inspect
SwapSell : func(id string, tokensIn int64, minWugnotOut int64) int64 Inspect
Transfer : func(id string, to .uverse.address, amount int64) Inspect
Approve : func(id string, spender .uverse.address, amount int64) Inspect
TransferFrom : func(id string, from .uverse.address, to .uverse.address, amount int64) Inspect
ClaimCreatorFees : func(id string) int64 Inspect
payoutProtocolFees : func() int64 Inspect
ClaimProtocolFees : func() int64 Inspect
PushProtocolFees : func() int64 Inspect
TransferProtocol : func(newAddr .uverse.address) Inspect
ProtocolAddress : func() string Inspect
ProtocolFeesPaid : func() int64 Inspect
FeeInfo : func() string Inspect
PadAddress : func() string Inspect
AdminInfo : func() string Inspect
IsProtocol : func(addr string) bool Inspect
reservedUgnot : func() int64 Inspect
ReservedUgnot : func() int64 Inspect
freeUgnot : func() int64 Inspect
WithdrawProtocolUgnot : func(amount int64) int64 Inspect
BalanceOf : func(id string, owner .uverse.address) int64 Inspect
ListBuyers : func(id string) string Inspect
GetStatus : func(id string) int Inspect
GetRaised : func(id string) int64 Inspect
GetPool : func(id string) (ugnot int64, token int64) Inspect
GetCreatorFees : func(id string) int64 Inspect
ProtocolFees : func() int64 Inspect
LaunchCount : func() int Inspect
ResolveSymbol : func(symbol string) string Inspect
ListIDs : func() string Inspect
LaunchInfo : func(id string) string Inspect
ParamsInfo : func() string Inspect
TradeHistory : func(id string) string Inspect
TradeCount : func(id string) int Inspect
resetForTest : func() Inspect
TotalSupply : int64 =1000000000
CurveSupply : int64 =800000000
PoolSeed : int64 =200000000
VirtualUgnot0 : int64 =102375071625
VirtualToken0 : int64 =1073000191
GraduationThreshold : int64 =300000000000
FeeBPS : int64 =120
CreatorFeeShareBPS : int64 =4000
ProtocolFeeShareBPS : int64 =4000
CreateBondUgnot : int64 =150000000
BondRefundBuyers : int =5
BondRefundMinRaised : int64 =5000000
BondRefundMaxHeights : int64 =100000
AntiSnipeHeights : int64 =20
AntiSnipeMaxBuyBPS : int64 =500
StatusCurve : untyped bigint =(0 <untyped> bigint)
StatusGraduated : untyped bigint =(1 <untyped> bigint)
MaxTradeHistory : untyped bigint =(128 <untyped> bigint)
TradeSideBuy : untyped bigint =(0 <untyped> bigint)
TradeSideSell : untyped bigint =(1 <untyped> bigint)
TradeSideOpen : untyped bigint =(2 <untyped> bigint)
DenomUgnot : untyped string ="ugnot"
GnoswapFeeTier : uint32 =3000
GnoswapTickSpacing : int32 =60
GnoswapMinTick : int32 =-887272
GnoswapMaxTick : int32 =887272
GnoswapMaxFeeWugnot : int64 =1500000000
ListFeeGns : int64 =100000000
Render : func(path string) string Inspect
sanitize : func(s string) string Inspect
renderHome : func() string Inspect
renderToken : func(id string) string Inspect
progressBar : func(pct int64) string Inspect
renderHelp : func() string Inspect
tryListOnZdex : func(l *pad.Launch, raisedUgnot int64, liqTokens int64) bool Inspect