Select a file to view its exact on-chain source. Sorted README → gnomod → sources → tests.
AddApprover(cur interface {.seal func(); Address func() .uverse.address; IsCode func() bool; IsCurrent func() bool; IsEphemeral func() bool; IsUser func() bool; IsUserCall func() bool; IsUserRun func() bool; PkgPath func() string; Previous func() .uverse.realm; String func() string; Sub func(string) .uverse.realm; Subpath func() string}, addr string)
Address() string
Approve(cur interface {.seal func(); Address func() .uverse.address; IsCode func() bool; IsCurrent func() bool; IsEphemeral func() bool; IsUser func() bool; IsUserCall func() bool; IsUserRun func() bool; PkgPath func() string; Previous func() .uverse.realm; String func() string; Sub func(string) .uverse.realm; Subpath func() string}, id int64, wantTo string, wantAmount int64)
Balance() int64
DeniedCount() int64
Deny(cur interface {.seal func(); Address func() .uverse.address; IsCode func() bool; IsCurrent func() bool; IsEphemeral func() bool; IsUser func() bool; IsUserCall func() bool; IsUserRun func() bool; PkgPath func() string; Previous func() .uverse.realm; String func() string; Sub func(string) .uverse.realm; Subpath func() string}, id int64, why string)
Fund(cur interface {.seal func(); Address func() .uverse.address; IsCode func() bool; IsCurrent func() bool; IsEphemeral func() bool; IsUser func() bool; IsUserCall func() bool; IsUserRun func() bool; PkgPath func() string; Previous func() .uverse.realm; String func() string; Sub func(string) .uverse.realm; Subpath func() string})
IsApprover(addr string) bool
MaxPerRequest() int64
NextID() int64
Pending() int64
ReceivedBy(addr string) int64
RemoveApprover(cur interface {.seal func(); Address func() .uverse.address; IsCode func() bool; IsCurrent func() bool; IsEphemeral func() bool; IsUser func() bool; IsUserCall func() bool; IsUserRun func() bool; PkgPath func() string; Previous func() .uverse.realm; String func() string; Sub func(string) .uverse.realm; Subpath func() string}, addr string)
Render(path string) string
Request(cur interface {.seal func(); Address func() .uverse.address; IsCode func() bool; IsCurrent func() bool; IsEphemeral func() bool; IsUser func() bool; IsUserCall func() bool; IsUserRun func() bool; PkgPath func() string; Previous func() .uverse.realm; String func() string; Sub func(string) .uverse.realm; Subpath func() string}, to string, amount int64, reason string) int64
Requests() int
SentCount() int64
SetMaxPerRequest(cur interface {.seal func(); Address func() .uverse.address; IsCode func() bool; IsCurrent func() bool; IsEphemeral func() bool; IsUser func() bool; IsUserCall func() bool; IsUserRun func() bool; PkgPath func() string; Previous func() .uverse.realm; String func() string; Sub func(string) .uverse.realm; Subpath func() string}, amount int64)
Status(id int64) string
TotalSent() int64
Withdraw(cur interface {.seal func(); Address func() .uverse.address; IsCode func() bool; IsCurrent func() bool; IsEphemeral func() bool; IsUser func() bool; IsUserCall func() bool; IsUserRun func() bool; PkgPath func() string; Previous func() .uverse.realm; String func() string; Sub func(string) .uverse.realm; Subpath func() string}, amount int64)
Signatures reconstructed verbatim from vm/qfuncs — interface params keep their inline definitions.
# GNOT faucet
Somebody you trust has no GNOT and cannot use the public faucet. File a
request on their behalf, an approver releases it, and both halves stay on
this page with a reason attached. The faucet only ever spends what has been
sent to its own address.
| | |
| --- | ---: |
| Float available | **500 GNOT** |
| Paid out | 0 GNOT over 0 request(s) |
| Open requests | 0 |
| Refused | 0 |
| Cap per request | 200 GNOT |
| Float address | `g162rfssecz2jq770f7as3qunm4wvh4pmna0guxv` |
## Open
_Nothing here yet._
## Decided
_Nothing here yet._
## Approvers
- `g1manfred47kzduec920z88wfr64ylksmdcedlf5`
## How
`Request(to, amount, reason)` is open to anyone and moves no money.
`Approve(id, to, amount)` pays it, and only an approver can call it.
Send both in **one transaction**: a tm2 transaction stops at the first
message that fails and writes none of their state, so the ask and its
answer land together or not at all. Read `NextID` to address the approval,
and pass the recipient and the amount into it as well: if another request
takes that id first, the mismatch fails the transaction instead of paying
the wrong account.
vm/qrender output, sanitized (docs/render-security.md) and displayed in an empty-sandbox iframe — scripts, forms and popups cannot run. Links stay inert in-preview; right-click to open.