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.

fish state

Back to all declarations

UpdatePrice

func(id int, priceUgnot int64)
Open
OID
04d5ee…c2be:5
UpdatePrice details

Inspect func

SellerOf

func(id int) .uverse.address
Open
OID
04d5ee…c2be:8
SellerOf details

Inspect func

GrcOwnerOf

func(id int) string
Open
OID
04d5ee…c2be:12
GrcOwnerOf details

Inspect func

addrStr

func(a .uverse.address) string
Open
OID
04d5ee…c2be:15
addrStr details

Inspect func

damageRow

type

Value

fish.damageRow

blows

[][]fish.damageRow

blows\[victimID] sums HP actually removed, keyed by the attacker's owner.

Value

<zero>

Bite

func(id int, target int)

Bite is one user call and takes no payment. The hit test is sector-center reach plus a 42 degree mouth cone. A miss does not start cooldown. Members of the same party cannot bite each other. A killing blow pays the smaller Pool X and leaves the NFT at 30% HP. The killer share is split by HP removed. Empty cheer pays the team sink. A new kill does not drop watch shards. Buyback GNOT that cannot buy one FISH from the reserve burns. Spent GNOT joins liquidity.

Open
OID
04d5ee…c2be:17
Bite details

Inspect func

payKill

func(atk *fish.fishBody, vic *fish.fishBody, rlm .uverse.realm)
Open
OID
04d5ee…c2be:19
payKill details

Inspect func

payKiller

func(owner .uverse.address, victim int, amount int64, rlm .uverse.realm)

payKiller splits the killer share by HP removed among current members. The party realm holds no coins. A solo owner, or a party with no recorded damage, receives the whole share. Dust goes to the highest damage, and a tie prefers the owner who landed the blow.

Open
OID
04d5ee…c2be:20
payKiller details

Inspect func

splitWeights

func(amount int64, weights []int, prefer .uverse.address, owners [].uverse.address) []int64
Open
OID
04d5ee…c2be:21
splitWeights details

Inspect func

addDamage

func(id int, owner .uverse.address, n int)
Open
OID
04d5ee…c2be:22
addDamage details

Inspect func

damageOf

func(id int, owner .uverse.address) int
Open
OID
04d5ee…c2be:23
damageOf details

Inspect func

clearDamage

func(id int)

clearDamage drops incoming blows so the next entry starts clean.

Open
OID
04d5ee…c2be:24
clearDamage details

Inspect func

creditBout

func(body *fish.fishBody)

creditBout counts one finished entry. Leave does not call it. SettleMatch does not count the entry again.

Open
OID
04d5ee…c2be:25
creditBout details

Inspect func

liveFish

func(body *fish.fishBody, now int64) bool
Open
OID
04d5ee…c2be:26
liveFish details

Inspect func

coveredStake

func(killerPool int64, victimPool int64) int64
Open
OID
04d5ee…c2be:28
coveredStake details

Inspect func

splitParts

func(amount int64) (killer int64, lp int64, team int64, buyback int64, cheer int64)

splitParts is 80/10/3/3/4. Killer, liquidity, team, FISH buyback, cheer. Dust joins the buyback.

Open
OID
04d5ee…c2be:29
splitParts details

Inspect func

settleBuyback

func(budget int64, rlm .uverse.realm) int64

settleBuyback spends whole FISH from the reserve at 0.02 GNOT each. GNOT that cannot buy one FISH stays with the caller to burn. This does not mint.

Open
OID
04d5ee…c2be:30
settleBuyback details

Inspect func

payWinFish

func(owner .uverse.address, stake int64, rlm .uverse.realm)

payWinFish pays 1 whole FISH per 1 whole GNOT of the winner stake, then the party bonus. Both come from the reserve after buyback. A short reserve pays less. This does not mint.

Open
OID
04d5ee…c2be:31
payWinFish details

Inspect func

reserveUnits

func(whole int64) int64
Open
OID
04d5ee…c2be:32
reserveUnits details

Inspect func

partyMembers

func(owner .uverse.address, rlm .uverse.realm) [].uverse.address
Open
OID
04d5ee…c2be:33
partyMembers details

Inspect func

partyFishBonusBps

func(members int) int
Open
OID
04d5ee…c2be:34
partyFishBonusBps details

Inspect func

splitPartyFish

func(bonus int64, owners [].uverse.address, killer .uverse.address) []int64
Open
OID
04d5ee…c2be:35
splitPartyFish details

Inspect func

strikeDamage

func(bite int, hpMax int, atkSize string, defSize string) int
Open
OID
04d5ee…c2be:36
strikeDamage details

Inspect func

sizeIndex

func(size string) int
Open
OID
04d5ee…c2be:37
sizeIndex details

Inspect func

biteOf

func(rarity string, size string, trait string) int
Open
OID
04d5ee…c2be:38
biteOf details

Inspect func

cooldownMs

func(rarity string) int64
Open
OID
04d5ee…c2be:39
cooldownMs details

Inspect func

reachUnits

func(rarity string, size string, dodgeTenths int) int64

reachUnits is the dodged bite reach in 1/10000 of a world unit. A sector is 8 world units, so the next center is 80000 units away.

Open
OID
04d5ee…c2be:40
reachUnits details

Inspect func

inReach

func(atk *fish.fishBody, def *fish.fishBody) bool
Open
OID
04d5ee…c2be:41
inReach details

Inspect func

inReachDodge

func(atk *fish.fishBody, def *fish.fishBody, dodge int) bool
Open
OID
04d5ee…c2be:42
inReachDodge details

Inspect func

denom

untyped string

Value

"ugnot"

ugnot

untyped bigint

Value

(1000000 <untyped> bigint)

layFee

untyped bigint

Value

(2000000 <untyped> bigint)

fishUnit

untyped bigint

Value

(1000000 <untyped> bigint)

twapUgnot

untyped bigint

Value

(20000 <untyped> bigint)

upgradeFishFee

untyped bigint

Value

(15000000 <untyped> bigint)

protocolBps

untyped bigint

Value

(200 <untyped> bigint)

maxRoyalty

untyped bigint

Value

(1000 <untyped> bigint)

maxPrice

untyped bigint

Value

(1000000000000 <untyped> bigint)

stakeCeil

untyped bigint

Value

(922337203685477 <untyped> bigint)

combatLockMs

untyped bigint

Value

(5000 <untyped> bigint)

layBlocks

untyped bigint

Value

(2 <untyped> bigint)

listCap

untyped bigint

Value

(50 <untyped> bigint)

fishBody

type

Value

fish.fishBody

nextID

int

Value

5

minted

int

Value

5

inited

bool

Value

true

tokenSeq

v0.ID

Value

<zero>

creator

.uverse.address

Value

<gnolang.StringValue>

self

.uverse.address

Value

<gnolang.StringValue>

upgradeSink

.uverse.address

Value

<gnolang.StringValue>

lpSink

.uverse.address

Value

<gnolang.StringValue>

burnSink

.uverse.address

Value

<gnolang.StringValue>

teamSink

.uverse.address

Value

<gnolang.StringValue>

protocolSink

.uverse.address

Value

<gnolang.StringValue>

seasonSink

.uverse.address

Value

<gnolang.StringValue>

fishReserve

.uverse.address

Value

<gnolang.StringValue>

royaltyBps

int64

Value

500

imageBase

string

Value

"https://shoal.example/art"

portrait

string

Value

"https://gateway.pinata.cloud/ipfs/bafybeid6uahelm3h2oo7rs4z6cgdyrpkueuvcychwuz5fw5tf7mj6hggli"

colName

string

Value

"Shoal Fish"

colSymbol

string

Value

"FISH"

mintFee

int64

Value

150000000

stakeMin

int64

Value

10000000

Init

func(name string, symbol string, images string, royalty int64, upgrade .uverse.address, lp .uverse.address, burn .uverse.address, team .uverse.address, protocol .uverse.address, season .uverse.address)
Open
OID
04d5ee…c2be:68
Init details

Inspect func

Mint

func(name string, size string, trait string) int
Open
OID
04d5ee…c2be:70
Mint details

Inspect func

SetArt

func(image string)

SetArt sets one https image on every unburned fish. The creator may call it again.

Open
OID
04d5ee…c2be:71
SetArt details

Inspect func

Transfer

func(to .uverse.address, id int)
Open
OID
04d5ee…c2be:73
Transfer details

Inspect func

TransferFrom

func(from string, to string, tid string)
Open
OID
04d5ee…c2be:74
TransferFrom details

Inspect func

Approve

func(to string, tid string)
Open
OID
04d5ee…c2be:75
Approve details

Inspect func

SetApprovalForAll

func(operator string, approved bool)
Open
OID
04d5ee…c2be:76
SetApprovalForAll details

Inspect func

OwnerOf

func(tid string) (.uverse.address, .uverse.error)
Open
OID
04d5ee…c2be:77
OwnerOf details

Inspect func

BalanceOf

func(addr string) int64
Open
OID
04d5ee…c2be:82
BalanceOf details

Inspect func

GrcBalanceOf

func(addr string) int64
Open
OID
04d5ee…c2be:83
GrcBalanceOf details

Inspect func

TokenURI

func(tid string) string
Open
OID
04d5ee…c2be:84
TokenURI details

Inspect func

TokensOf

func(owner string) string
Open
OID
04d5ee…c2be:85
TokensOf details

Inspect func

TokenOfOwnerByIndex

func(owner string, index int64) string
Open
OID
04d5ee…c2be:86
TokenOfOwnerByIndex details

Inspect func

GetApproved

func(id int) string
Open
OID
04d5ee…c2be:88
GetApproved details

Inspect func

IsApprovedForAll

func(owner string, operator string) bool
Open
OID
04d5ee…c2be:89
IsApprovedForAll details

Inspect func

SetFishReserve

func(who .uverse.address)

SetFishReserve names the address whose FISH allowance pays a kill. The reserve must approve this realm. This does not mint FISH.

Open
OID
04d5ee…c2be:94
SetFishReserve details

Inspect func

FishReserve

func() .uverse.address
Open
OID
04d5ee…c2be:95
FishReserve details

Inspect func

SetMintFee

func(next int64)

SetMintFee changes the next mint price. The default is 50 GNOT.

Open
OID
04d5ee…c2be:96
SetMintFee details

Inspect func

SetStakeMin

func(next int64)

SetStakeMin changes the sea floor. There is no product maximum. stakeCeil stays the integer ceiling.

Open
OID
04d5ee…c2be:97
SetStakeMin details

Inspect func

issue

func(to .uverse.address, name string, rarity string, size string, trait string) int
Open
OID
04d5ee…c2be:112
issue details

Inspect func

mintGRC

func(to .uverse.address, body *fish.fishBody)
Open
OID
04d5ee…c2be:113
mintGRC details

Inspect func

writeURI

func(body *fish.fishBody)
Open
OID
04d5ee…c2be:114
writeURI details

Inspect func

moveToken

func(spender .uverse.address, from .uverse.address, to .uverse.address, id int)
Open
OID
04d5ee…c2be:117
moveToken details

Inspect func

tokenJSON

func(body *fish.fishBody) string
Open
OID
04d5ee…c2be:118
tokenJSON details

Inspect func

requireUser

func() .uverse.address
Open
OID
04d5ee…c2be:119
requireUser details

Inspect func

payMint

func(fee int64, rlm .uverse.realm)
Open
OID
04d5ee…c2be:122
payMint details

Inspect func

fishTokenReady

func() bool
Open
OID
04d5ee…c2be:123
fishTokenReady details

Inspect func

send

func(to .uverse.address, amt int64, rlm .uverse.realm)
Open
OID
04d5ee…c2be:124
send details

Inspect func

guardMovable

func(body *fish.fishBody)
Open
OID
04d5ee…c2be:126
guardMovable details

Inspect func

unplayed

func(owner .uverse.address) bool
Open
OID
04d5ee…c2be:127
unplayed details

Inspect func

validFishName

func(name string) bool
Open
OID
04d5ee…c2be:130
validFishName details

Inspect func

validCollectionName

func(name string) bool
Open
OID
04d5ee…c2be:131
validCollectionName details

Inspect func

validArt

func(image string) bool
Open
OID
04d5ee…c2be:132
validArt details

Inspect func

validSymbol

func(symbol string) bool
Open
OID
04d5ee…c2be:133
validSymbol details

Inspect func

validSize

func(size string) bool
Open
OID
04d5ee…c2be:134
validSize details

Inspect func

validTrait

func(trait string) bool
Open
OID
04d5ee…c2be:135
validTrait details

Inspect func

speciesOf

func(rarity string) string
Open
OID
04d5ee…c2be:136
speciesOf details

Inspect func

hpOf

func(rarity string, size string, trait string) int
Open
OID
04d5ee…c2be:138
hpOf details

Inspect func

arenaStake

func(stake int64) bool
Open
OID
04d5ee…c2be:140
arenaStake details

Inspect func

Register

func(id int, stake int64)
Open
OID
04d5ee…c2be:141
Register details

Inspect func

Upgrade

func(keep int, food int) int

Upgrade spends 15 FISH to step two played Common fish to Uncommon. The FISH fee burns. The team takes none of it. No GNOT moves. Higher tiers stay closed until a commit-reveal roll exists.

Open
OID
04d5ee…c2be:147
Upgrade details

Inspect func

burnBody

func(body *fish.fishBody)
Open
OID
04d5ee…c2be:148
burnBody details

Inspect func

traitFrom

func(id int, commitHeight int64, settleHeight int64, unix int64) string
Open
OID
04d5ee…c2be:149
traitFrom details

Inspect func

seaRadius

untyped bigint

Value

(360 <untyped> bigint)

sector

untyped bigint

Value

(8 <untyped> bigint)

unitMilli

untyped bigint

Value

(1000 <untyped> bigint)

sectorMilli

untyped bigint

Value

(8000 <untyped> bigint)

mouthAlignNum

untyped bigint

Value

(552264 <untyped> bigint)

mouthContact

untyped bigint

Value

(1000 <untyped> bigint)

healsPerDay

untyped bigint

Value

(2 <untyped> bigint)

healPercent

untyped bigint

Value

(40 <untyped> bigint)

healCooldownMs

untyped bigint

Value

(28800000 <untyped> bigint)

ictOffsetMs

untyped bigint

Value

(25200000 <untyped> bigint)

dayMs

untyped bigint

Value

(86400000 <untyped> bigint)

springPeriodMs

untyped bigint

Value

(20000 <untyped> bigint)

springLifeMs

untyped bigint

Value

(15000 <untyped> bigint)

springRadiusMilli

untyped bigint

Value

(3000 <untyped> bigint)

springHealPercent

untyped bigint

Value

(20 <untyped> bigint)

shelterHPMax

untyped bigint

Value

(64 <untyped> bigint)

shelterRebuildMs

untyped bigint

Value

(20000 <untyped> bigint)

burstWindowMs

untyped bigint

Value

(1000 <untyped> bigint)

burstCoolMs

untyped bigint

Value

(2000 <untyped> bigint)

viewerShards

untyped bigint

Value

(10 <untyped> bigint)

viewerWatchMs

untyped bigint

Value

(15000 <untyped> bigint)

viewerWindowMs

untyped bigint

Value

(30000 <untyped> bigint)

minCheer

untyped bigint

Value

(1000000 <untyped> bigint)

growMediumAt

untyped bigint

Value

(2 <untyped> bigint)

growLargeAt

untyped bigint

Value

(4 <untyped> bigint)

growEvolveAt

untyped bigint

Value

(6 <untyped> bigint)

cheerRow

type

Value

fish.cheerRow

claimRow

type

Value

fish.claimRow

watchRow

type

Value

fish.watchRow

disc

type

Value

fish.disc

cheers

[]fish.cheerRow

Value

<zero>

claims

[]fish.claimRow

Value

<zero>

watches

[]fish.watchRow

Value

<zero>

killSeq

int

Value

0

Cheer

func(id int)

Cheer locks ugnot on a fish already in the sea. The deposit comes back when that fish leaves or is downed. It does not change bite.

Open
OID
04d5ee…c2be:173
Cheer details

Inspect func

swimming

func(id int) *fish.fishBody
Open
OID
04d5ee…c2be:176
swimming details

Inspect func

walletInSea

func(owner .uverse.address) bool
Open
OID
04d5ee…c2be:177
walletInSea details

Inspect func

tooHurt

func(body *fish.fishBody) bool
Open
OID
04d5ee…c2be:178
tooHurt details

Inspect func

placeSwimmer

func(body *fish.fishBody)
Open
OID
04d5ee…c2be:179
placeSwimmer details

Inspect func

tryPlace

func(body *fish.fishBody, sx int, sz int) bool
Open
OID
04d5ee…c2be:180
tryPlace details

Inspect func

stepFish

func(body *fish.fishBody, now int64)
Open
OID
04d5ee…c2be:181
stepFish details

Inspect func

sectorInSea

func(sx int, sz int) bool
Open
OID
04d5ee…c2be:182
sectorInSea details

Inspect func

cellTaken

func(sx int, sz int, self int) bool
Open
OID
04d5ee…c2be:183
cellTaken details

Inspect func

spawnBlocked

func(sx int, sz int) bool
Open
OID
04d5ee…c2be:184
spawnBlocked details

Inspect func

cellBlocked

func(sx int, sz int, size string, now int64) bool
Open
OID
04d5ee…c2be:185
cellBlocked details

Inspect func

cellMilli

func(sx int, sz int) (int, int)
Open
OID
04d5ee…c2be:186
cellMilli details

Inspect func

insideDisc

func(x int, z int, cx int, cz int, r int) bool
Open
OID
04d5ee…c2be:187
insideDisc details

Inspect func

refreshShelter

func(i int, now int64)
Open
OID
04d5ee…c2be:189
refreshShelter details

Inspect func

shelterAdmits

func(kind string, size string) bool
Open
OID
04d5ee…c2be:190
shelterAdmits details

Inspect func

coverIndex

func(body *fish.fishBody, now int64) int
Open
OID
04d5ee…c2be:191
coverIndex details

Inspect func

redirectShelter

func(atk *fish.fishBody, vic *fish.fishBody, now int64) bool
Open
OID
04d5ee…c2be:192
redirectShelter details

Inspect func

mouthHit

func(atk *fish.fishBody, def *fish.fishBody) bool
Open
OID
04d5ee…c2be:193
mouthHit details

Inspect func

shelterMouth

func(atk *fish.fishBody, vic *fish.fishBody, now int64) bool

shelterMouth is a bite against the pocket, not against the fish's dodge. The attacker must stand outside, must not fit inside, and must face the fish.

Open
OID
04d5ee…c2be:194
shelterMouth details

Inspect func

discHolds

func(sx int, sz int, cx int, cz int, r int) bool

Sector centers sit off the practice discs, same as a spring on z = 0. The cell that holds the point counts as inside.

Open
OID
04d5ee…c2be:195
discHolds details

Inspect func

mouthAimed

func(atk *fish.fishBody, def *fish.fishBody, dodge int) bool
Open
OID
04d5ee…c2be:196
mouthAimed details

Inspect func

faceMilli

func(dx int, dz int) (int, int)
Open
OID
04d5ee…c2be:197
faceMilli details

Inspect func

mouthLead

func(size string) int
Open
OID
04d5ee…c2be:198
mouthLead details

Inspect func

biteNow

func(body *fish.fishBody) int
Open
OID
04d5ee…c2be:199
biteNow details

Inspect func

strikeFought

func(bite int, hpMax int, atkSize string, defSize string, atkR string, defR string) int
Open
OID
04d5ee…c2be:200
strikeFought details

Inspect func

preyOf

func(rarity string) string
Open
OID
04d5ee…c2be:201
preyOf details

Inspect func

nextRarity

func(rarity string) string
Open
OID
04d5ee…c2be:202
nextRarity details

Inspect func

growFromKill

func(atk *fish.fishBody, vic *fish.fishBody)
Open
OID
04d5ee…c2be:203
growFromKill details

Inspect func

worldSpeed

func(body *fish.fishBody) int
Open
OID
04d5ee…c2be:204
worldSpeed details

Inspect func

moveDelay

func(body *fish.fishBody, now int64) int64
Open
OID
04d5ee…c2be:205
moveDelay details

Inspect func

rolledHeal

func(body *fish.fishBody, now int64) (day int64, used int, ready int64)
Open
OID
04d5ee…c2be:207
rolledHeal details

Inspect func

writeHeal

func(body *fish.fishBody, day int64, used int, ready int64)
Open
OID
04d5ee…c2be:208
writeHeal details

Inspect func

cheerLocked

func(id int) int64
Open
OID
04d5ee…c2be:209
cheerLocked details

Inspect func

returnCheers

func(body *fish.fishBody, rlm .uverse.realm)
Open
OID
04d5ee…c2be:210
returnCheers details

Inspect func

bookCheerClaims

func(atk *fish.fishBody, vic *fish.fishBody, cheer int64, now int64) int64
Open
OID
04d5ee…c2be:211
bookCheerClaims details

Inspect func

bookWatchClaims

func(atk *fish.fishBody, vic *fish.fishBody, viewer int64, now int64) int64
Open
OID
04d5ee…c2be:212
bookWatchClaims details

Inspect func

anyEligible

func(killer .uverse.address, victim .uverse.address, killAt int64) bool
Open
OID
04d5ee…c2be:213
anyEligible details

Inspect func

watchEligible

func(who .uverse.address, killAt int64) bool
Open
OID
04d5ee…c2be:214
watchEligible details

Inspect func

watchClaimed

func(who .uverse.address, killID int) bool
Open
OID
04d5ee…c2be:215
watchClaimed details

Inspect func

dropWatch

func(who .uverse.address)
Open
OID
04d5ee…c2be:216
dropWatch details

Inspect func

springMilli

func(now int64) (x int, z int, born int64, ok bool)
Open
OID
04d5ee…c2be:217
springMilli details

Inspect func

springTouches

func(sx int, sz int, springX int, springZ int) bool
Open
OID
04d5ee…c2be:218
springTouches details

Inspect func

touchSpring

func(body *fish.fishBody, now int64)
Open
OID
04d5ee…c2be:219
touchSpring details

Inspect func
List : func(id int, priceUgnot int64) Inspect
UpdatePrice : func(id int, priceUgnot int64) Inspect
Cancel : func(id int) Inspect
Buy : func(id int) Inspect
SellerOf : func(id int) .uverse.address Inspect
PriceOf : func(id int) int64 Inspect
ImageOf : func(id int) string Inspect
NameOf : func(id int) string Inspect
GrcOwnerOf : func(id int) string Inspect
ItemLine : func(id int) string Inspect
ListOpen : func() string Inspect
addrStr : func(a .uverse.address) string Inspect
damageRow : type =fish.damageRow
blows : [][]fish.damageRow =<zero>
Bite : func(id int, target int) Inspect
payKill : func(atk *fish.fishBody, vic *fish.fishBody, rlm .uverse.realm) Inspect
payKiller : func(owner .uverse.address, victim int, amount int64, rlm .uverse.realm) Inspect
splitWeights : func(amount int64, weights []int, prefer .uverse.address, owners [].uverse.address) []int64 Inspect
addDamage : func(id int, owner .uverse.address, n int) Inspect
damageOf : func(id int, owner .uverse.address) int Inspect
clearDamage : func(id int) Inspect
creditBout : func(body *fish.fishBody) Inspect
liveFish : func(body *fish.fishBody, now int64) bool Inspect
downHP : func(max int) int Inspect
coveredStake : func(killerPool int64, victimPool int64) int64 Inspect
splitParts : func(amount int64) (killer int64, lp int64, team int64, buyback int64, cheer int64) Inspect
settleBuyback : func(budget int64, rlm .uverse.realm) int64 Inspect
payWinFish : func(owner .uverse.address, stake int64, rlm .uverse.realm) Inspect
reserveUnits : func(whole int64) int64 Inspect
partyMembers : func(owner .uverse.address, rlm .uverse.realm) [].uverse.address Inspect
partyFishBonusBps : func(members int) int Inspect
splitPartyFish : func(bonus int64, owners [].uverse.address, killer .uverse.address) []int64 Inspect
strikeDamage : func(bite int, hpMax int, atkSize string, defSize string) int Inspect
sizeIndex : func(size string) int Inspect
biteOf : func(rarity string, size string, trait string) int Inspect
cooldownMs : func(rarity string) int64 Inspect
reachUnits : func(rarity string, size string, dodgeTenths int) int64 Inspect
inReach : func(atk *fish.fishBody, def *fish.fishBody) bool Inspect
inReachDodge : func(atk *fish.fishBody, def *fish.fishBody, dodge int) bool Inspect
denom : untyped string ="ugnot"
ugnot : untyped bigint =(1000000 <untyped> bigint)
layFee : untyped bigint =(2000000 <untyped> bigint)
fishUnit : untyped bigint =(1000000 <untyped> bigint)
twapUgnot : untyped bigint =(20000 <untyped> bigint)
upgradeFishFee : untyped bigint =(15000000 <untyped> bigint)
protocolBps : untyped bigint =(200 <untyped> bigint)
maxRoyalty : untyped bigint =(1000 <untyped> bigint)
maxPrice : untyped bigint =(1000000000000 <untyped> bigint)
stakeCeil : untyped bigint =(922337203685477 <untyped> bigint)
combatLockMs : untyped bigint =(5000 <untyped> bigint)
layBlocks : untyped bigint =(2 <untyped> bigint)
listCap : untyped bigint =(50 <untyped> bigint)
fishBody : type =fish.fishBody
bodies : []*fish.fishBody (len=6) Inspect
nextID : int =5
minted : int =5
inited : bool =true
token : *v0.Token Inspect
ledger : *v0.PrivateLedger Inspect
metaView : *v0.Metadata Inspect
metaLed : *v0.Ledger Inspect
tokenSeq : v0.ID =<zero>
creator : .uverse.address =<gnolang.StringValue>
self : .uverse.address =<gnolang.StringValue>
upgradeSink : .uverse.address =<gnolang.StringValue>
lpSink : .uverse.address =<gnolang.StringValue>
burnSink : .uverse.address =<gnolang.StringValue>
teamSink : .uverse.address =<gnolang.StringValue>
protocolSink : .uverse.address =<gnolang.StringValue>
seasonSink : .uverse.address =<gnolang.StringValue>
fishReserve : .uverse.address =<gnolang.StringValue>
royaltyBps : int64 =500
imageBase : string ="https://shoal.example/art"
portrait : string ="https://gateway.pinata.cloud/ipfs/bafybeid6uahelm3h2oo7rs4z6cgdyrpkueuvcychwuz5fw5tf7mj6hggli"
colName : string ="Shoal Fish"
colSymbol : string ="FISH"
mintFee : int64 =150000000
stakeMin : int64 =10000000
Init : func(name string, symbol string, images string, royalty int64, upgrade .uverse.address, lp .uverse.address, burn .uverse.address, team .uverse.address, protocol .uverse.address, season .uverse.address) Inspect
Mint : func(name string, size string, trait string) int Inspect
SetArt : func(image string) Inspect
Portrait : func() string Inspect
Transfer : func(to .uverse.address, id int) Inspect
TransferFrom : func(from string, to string, tid string) Inspect
Approve : func(to string, tid string) Inspect
SetApprovalForAll : func(operator string, approved bool) Inspect
OwnerOf : func(tid string) (.uverse.address, .uverse.error) Inspect
Name : func() string Inspect
Symbol : func() string Inspect
GrcName : func() string Inspect
GrcSymbol : func() string Inspect
BalanceOf : func(addr string) int64 Inspect
GrcBalanceOf : func(addr string) int64 Inspect
TokenURI : func(tid string) string Inspect
TokensOf : func(owner string) string Inspect
TokenOfOwnerByIndex : func(owner string, index int64) string Inspect
TotalSupply : func() int64 Inspect
GetApproved : func(id int) string Inspect
IsApprovedForAll : func(owner string, operator string) bool Inspect
MintPrice : func() int64 Inspect
StakeMin : func() int64 Inspect
StakeCeil : func() int64 Inspect
Version : func() string Inspect
SetFishReserve : func(who .uverse.address) Inspect
FishReserve : func() .uverse.address Inspect
SetMintFee : func(next int64) Inspect
SetStakeMin : func(next int64) Inspect
MaxSupply : func() int Inspect
Minted : func() int Inspect
RoyaltyBps : func() int64 Inspect
Creator : func() .uverse.address Inspect
ProtocolBps : func() int64 Inspect
BoutsOf : func(id int) int Inspect
PoolOf : func(id int) int64 Inspect
Listed : func(id int) bool Inspect
InMatch : func(id int) bool Inspect
LayOpen : func(id int) bool Inspect
RarityOf : func(id int) string Inspect
SizeOf : func(id int) string Inspect
TraitOf : func(id int) string Inspect
SpeciesOf : func(id int) string Inspect
issue : func(to .uverse.address, name string, rarity string, size string, trait string) int Inspect
mintGRC : func(to .uverse.address, body *fish.fishBody) Inspect
writeURI : func(body *fish.fishBody) Inspect
artOf : func(rarity string) string Inspect
burnGRC : func(id int) Inspect
moveToken : func(spender .uverse.address, from .uverse.address, to .uverse.address, id int) Inspect
tokenJSON : func(body *fish.fishBody) string Inspect
requireUser : func() .uverse.address Inspect
requireInit : func() Inspect
takeExact : func(n int64) Inspect
payMint : func(fee int64, rlm .uverse.realm) Inspect
fishTokenReady : func() bool Inspect
send : func(to .uverse.address, amt int64, rlm .uverse.realm) Inspect
must : func(id int) *fish.fishBody Inspect
guardMovable : func(body *fish.fishBody) Inspect
unplayed : func(owner .uverse.address) bool Inspect
tokenID : func(id int) v0.TokenID Inspect
parseID : func(tid string) int Inspect
validFishName : func(name string) bool Inspect
validCollectionName : func(name string) bool Inspect
validArt : func(image string) bool Inspect
validSymbol : func(symbol string) bool Inspect
validSize : func(size string) bool Inspect
validTrait : func(trait string) bool Inspect
speciesOf : func(rarity string) string Inspect
hpBase : func(rarity string) int Inspect
hpOf : func(rarity string, size string, trait string) int Inspect
dodgeOf : func(size string) int Inspect
arenaStake : func(stake int64) bool Inspect
Register : func(id int, stake int64) Inspect
Leave : func(id int) Inspect
SettleMatch : func(id int) Inspect
CommitLay : func(id int) Inspect
SettleLay : func(id int) int Inspect
Upgrade : func(keep int, food int) int Inspect
burnBody : func(body *fish.fishBody) Inspect
traitFrom : func(id int, commitHeight int64, settleHeight int64, unix int64) string Inspect
seaRadius : untyped bigint =(360 <untyped> bigint)
sector : untyped bigint =(8 <untyped> bigint)
unitMilli : untyped bigint =(1000 <untyped> bigint)
sectorMilli : untyped bigint =(8000 <untyped> bigint)
mouthAlignNum : untyped bigint =(552264 <untyped> bigint)
mouthContact : untyped bigint =(1000 <untyped> bigint)
healsPerDay : untyped bigint =(2 <untyped> bigint)
healPercent : untyped bigint =(40 <untyped> bigint)
healCooldownMs : untyped bigint =(28800000 <untyped> bigint)
ictOffsetMs : untyped bigint =(25200000 <untyped> bigint)
dayMs : untyped bigint =(86400000 <untyped> bigint)
springPeriodMs : untyped bigint =(20000 <untyped> bigint)
springLifeMs : untyped bigint =(15000 <untyped> bigint)
springRadiusMilli : untyped bigint =(3000 <untyped> bigint)
springHealPercent : untyped bigint =(20 <untyped> bigint)
shelterHPMax : untyped bigint =(64 <untyped> bigint)
shelterRebuildMs : untyped bigint =(20000 <untyped> bigint)
burstWindowMs : untyped bigint =(1000 <untyped> bigint)
burstCoolMs : untyped bigint =(2000 <untyped> bigint)
viewerShards : untyped bigint =(10 <untyped> bigint)
viewerWatchMs : untyped bigint =(15000 <untyped> bigint)
viewerWindowMs : untyped bigint =(30000 <untyped> bigint)
minCheer : untyped bigint =(1000000 <untyped> bigint)
growMediumAt : untyped bigint =(2 <untyped> bigint)
growLargeAt : untyped bigint =(4 <untyped> bigint)
growEvolveAt : untyped bigint =(6 <untyped> bigint)
cheerRow : type =fish.cheerRow
claimRow : type =fish.claimRow
watchRow : type =fish.watchRow
disc : type =fish.disc
cheers : []fish.cheerRow =<zero>
claims : []fish.claimRow =<zero>
watches : []fish.watchRow =<zero>
killSeq : int =0
shelterHP : []int (len=4) Inspect
shelterDown : []int64 (len=4) Inspect
shelterTable : []fish.disc (len=4) Inspect
rockTable : []fish.disc (len=3) Inspect
Turn : func(id int, dx int, dz int) Inspect
Move : func(id int) Inspect
Burst : func(id int) Inspect
Heal : func(id int) Inspect
RushHeal : func(id int) Inspect
Cheer : func(id int) Inspect
Watch : func(on bool) Inspect
Claim : func(id int) Inspect
swimming : func(id int) *fish.fishBody Inspect
walletInSea : func(owner .uverse.address) bool Inspect
tooHurt : func(body *fish.fishBody) bool Inspect
placeSwimmer : func(body *fish.fishBody) Inspect
tryPlace : func(body *fish.fishBody, sx int, sz int) bool Inspect
stepFish : func(body *fish.fishBody, now int64) Inspect
sectorInSea : func(sx int, sz int) bool Inspect
cellTaken : func(sx int, sz int, self int) bool Inspect
spawnBlocked : func(sx int, sz int) bool Inspect
cellBlocked : func(sx int, sz int, size string, now int64) bool Inspect
cellMilli : func(sx int, sz int) (int, int) Inspect
insideDisc : func(x int, z int, cx int, cz int, r int) bool Inspect
ensureSea : func() Inspect
refreshShelter : func(i int, now int64) Inspect
shelterAdmits : func(kind string, size string) bool Inspect
coverIndex : func(body *fish.fishBody, now int64) int Inspect
redirectShelter : func(atk *fish.fishBody, vic *fish.fishBody, now int64) bool Inspect
mouthHit : func(atk *fish.fishBody, def *fish.fishBody) bool Inspect
shelterMouth : func(atk *fish.fishBody, vic *fish.fishBody, now int64) bool Inspect
discHolds : func(sx int, sz int, cx int, cz int, r int) bool Inspect
mouthAimed : func(atk *fish.fishBody, def *fish.fishBody, dodge int) bool Inspect
faceMilli : func(dx int, dz int) (int, int) Inspect
mouthLead : func(size string) int Inspect
biteNow : func(body *fish.fishBody) int Inspect
strikeFought : func(bite int, hpMax int, atkSize string, defSize string, atkR string, defR string) int Inspect
preyOf : func(rarity string) string Inspect
nextRarity : func(rarity string) string Inspect
growFromKill : func(atk *fish.fishBody, vic *fish.fishBody) Inspect
worldSpeed : func(body *fish.fishBody) int Inspect
moveDelay : func(body *fish.fishBody, now int64) int64 Inspect
tierOf : func(rarity string) int Inspect
rolledHeal : func(body *fish.fishBody, now int64) (day int64, used int, ready int64) Inspect
writeHeal : func(body *fish.fishBody, day int64, used int, ready int64) Inspect
cheerLocked : func(id int) int64 Inspect
returnCheers : func(body *fish.fishBody, rlm .uverse.realm) Inspect
bookCheerClaims : func(atk *fish.fishBody, vic *fish.fishBody, cheer int64, now int64) int64 Inspect
bookWatchClaims : func(atk *fish.fishBody, vic *fish.fishBody, viewer int64, now int64) int64 Inspect
anyEligible : func(killer .uverse.address, victim .uverse.address, killAt int64) bool Inspect
watchEligible : func(who .uverse.address, killAt int64) bool Inspect
watchClaimed : func(who .uverse.address, killID int) bool Inspect
dropWatch : func(who .uverse.address) Inspect
springMilli : func(now int64) (x int, z int, born int64, ok bool) Inspect
springTouches : func(sx int, sz int, springX int, springZ int) bool Inspect
touchSpring : func(body *fish.fishBody, now int64) Inspect