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

wbubble package

Overview

Package wbubble is wrapped BUBBLE: the Bubble Rumble token as a registered GRC20, backed one to one by BUBBLE held in this realm. It exists for gnoswap, which pools only tokens registered in gno.land/r/nt/grc20reg/v0 — and the registry takes only a *grc20.Token made by grc20.NewToken inside the registering realm. BUBBLE (gno.land/r/g1leu8d2vsplhehcfkjg50mwgdpxdkt8tztu95wr/bubble) keeps its ledger in kourt's grc20votes, not a grc20.Token, and a realm cannot be redeployed; so this realm holds BUBBLE and issues a registered token for it, the way gno.land/r/gnoland/wugnot wraps ugnot (ref/ holds the mainnet sources this mirrors).

Wrap pulls BUBBLE from the caller — an allowance the caller granted THIS realm on the bubble realm, spent by this realm as itself — and mints the same amount of wrapped BUBBLE to the caller. Unwrap burns the caller's wrapped BUBBLE and sends the same amount of BUBBLE back. Nothing else mints or burns, and nothing here is a setting: no admin, no pause, no minter. The reserve (this realm's BUBBLE balance) covers the wrapped supply after every call, and a call that would leave it short aborts.

Votes. BUBBLE carries a vote in its own realm; wrapped BUBBLE carries none. The BUBBLE held here is self-delegated, inside the bubble ledger, to this realm's own address — the ledger's default for every holder — and this realm never delegates it or votes with it, so that weight is never cast. Unwrap to vote.

Function

Wrap

func Wrap(cur realm, amount int64)

Wrap takes amount BUBBLE from the caller and mints as much wrapped BUBBLE to them. First, on the bubble realm, the caller approves THIS realm for the amount (bubble.Approve with spender Address()): bubble reads its own caller as the spender, and its caller here is this realm, not the user. A failure inside bubble panics across the realm boundary and aborts the whole transaction, so nothing is minted for BUBBLE that did not arrive.

Param

Command

# WARNING: This command is running in an INSECURE mode.
# It is strongly recommended to use a hardware device for signing
# and avoid trusting any computer connected to the internet,
# as your private keys could be exposed.

gnokey maketx call -pkgpath "gno.land/r/g1leu8d2vsplhehcfkjg50mwgdpxdkt8tztu95wr/wbubble" -func "Wrap" -args $'' -gas-fee 1000000ugnot -gas-wanted 1_000_000_000 -send "" -chainid "gnoland-1" -remote "http://127.0.0.1:26657" ADDRESSgnokey query -remote "http://127.0.0.1:26657" auth/accounts/ADDRESS
gnokey maketx call -pkgpath "gno.land/r/g1leu8d2vsplhehcfkjg50mwgdpxdkt8tztu95wr/wbubble" -func "Wrap" -args $'' -gas-fee 1000000ugnot -gas-wanted 1_000_000_000 -send "" -broadcast=false ADDRESS > call.tx
gnokey sign -tx-path call.tx -chainid "gnoland-1" -account-number ACCOUNTNUMBER -account-sequence SEQUENCENUMBER ADDRESS
gnokey broadcast -remote "http://127.0.0.1:26657" call.tx