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

bubblerumble3 package

Overview

Package bubblerumble3 is the third Bubble Rumble realm. v2's money stays: of every bid 55% goes to the pot, 30% is paid at once to the pool's earlier bidders pro-rata to what they paid in, 10% to whoever invited the bidder, 5% to the pool's creator. What v3 adds:

  • A last day. Every pool has a life (creator-set, 1h..30d) that starts at its first bid. The pool closes when its clock runs out OR its life does, whichever comes first. While the life runs out, the winner's share slides toward nothing and that part of the pot is instead split among all the pool's bidders pro-rata to what they paid in. A pool still contested on its last day ends as a shared pot, so nobody is stuck in a loop and bots gain nothing by outlasting people.

  • Flag war. At the close, TeamShare of the pot goes to the OTHER bidders who flew the winner's flag, pro-rata by paid-in; the winner never takes it. A winner whose flag nobody else flew hands it to all the other bidders instead, so a private flag buys nothing. A flag is locked per pool at the first bid there. The winner's own part is what slides.

  • Rebidding on yourself is allowed (it pays the others as any bid does).

  • Earnings are credited, not pushed: dividends, team shares and the close split accrue to each address and Withdraw sends them, so no bid or close ever loops over a hundred transfers, and nothing can brick a pool.

  • A bid's clock can be shortened by paying more, but never under MinClock, so paying up is never a way to close a pool before anyone can answer.

  • Shots. A bid may carry extra money as a shot at the bubble: a chance to pop it at once. The chance is 0.8 × shot / prize, at most 1% a shot, where the prize is the pot or ShotCap, whichever is smaller; a pot over ShotCap pays a ShotCap slice instead of popping. The shot goes into the pot, hit or miss, and every miss is counted on the bubble.

    The draw is the chain's block time, which on tm2 is the median of the validators' vote timestamps for the block before: public one block ahead, and nudgeable by a validator who is the median vote. Two things follow. A shot is drawn only in the blocks ShotDelay to ShotDelay+ ShotWindow after it was paid for, by whoever touches the pool then, and is void after that: a shooter cannot wait for a block whose time suits them, and the two blocks of leeway are worth less than the bid a shot must ride on. And the prize is capped at ShotCap, small enough that a validator grinding a timestamp is stealing lunch money, with SetShots as the switch if one does. Raise the cap when gno.land has real randomness.

Function

Price

func Price(base, n int64) int64

Price of the next bid in a pool with the given base price and n bids so far.

Params

Command

gnokey query vm/qeval -remote "https://rpc.gno.land" -data "gno.land/r/g1leu8d2vsplhehcfkjg50mwgdpxdkt8tztu95wr/bubblerumble3.Price(,)"

Result