Bases
Bases returns every base name this realm issues, in creation order.
Command
gnokey query vm/qeval -remote "https://rpc.gno.land" -data "gno.land/r/moul/x/nativeify/v0.Bases()"
Result
Package nativeify turns a GRC20 into a native coin, which is wugnot run backwards.
wugnot takes GNOT, a coin the bank holds, and issues a GRC20 receipt for it, because a GRC20 can be pulled by a contract and a native coin cannot. This realm takes a GRC20, escrows it, and issues a native denom against it 1:1, because a native coin can do four things a GRC20 cannot:
A native coin cannot be pulled. `banker.SendCoins` refuses any `from` that is not the banker's own realm address, so there is no allowance, no `TransferFrom`, and no way for an AMM, an escrow or a subscription to take what you approved. Everything downstream of `Approve` stops working the moment a coin becomes native. That is not a gap in this realm; it is the property that makes the wrapping worth doing in the other direction.
And the issuer of a native coin can always delete a balance: `RemoveCoin` takes an arbitrary address. This realm never calls it on an address other than its own, Unwrap explains why in detail, and the gnomod.toml explains why this path is public rather than redeployable. Those three together are the entire guarantee. There is no on-chain way to prove a negative about code.
One smallest unit of the underlying is one unit of the coin. Not 10^decimals: the bank has no notion of divisibility, so a token with 6 decimals wrapped here produces a coin counted in the token's own smallest units, and the 6 is carried to `r/moul/x/nativereg` as a display hint and nowhere else.
Solvency is therefore a plain equality that anybody can check without trusting this realm's bookkeeping: the GRC20 balance at this realm's address equals the total supply of the denom. Solvency computes it from both sides.
Play money to try it on: `r/moul/x/grc20faucet/v0`.
Bases returns every base name this realm issues, in creation order.
gnokey query vm/qeval -remote "https://rpc.gno.land" -data "gno.land/r/moul/x/nativeify/v0.Bases()"