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.

hlgnot state

Back to all declarations

namespace

untyped string

Value

"gno.land/r/g1zdaz6sypk5tdsjc2fzsqrrn4ttn8qzmnl4waqp/"

pkgPath

untyped string

// must match gnomod.toml

Value

"gno.land/r/g1zdaz6sypk5tdsjc2fzsqrrn4ttn8qzmnl4waqp/hlgnot"

mailboxPath

untyped string

Value

"gno.land/r/g1zdaz6sypk5tdsjc2fzsqrrn4ttn8qzmnl4waqp/hlmailbox"

feesPath

untyped string

Value

"gno.land/r/g1zdaz6sypk5tdsjc2fzsqrrn4ttn8qzmnl4waqp/hlfees"

bubblePath

untyped string

// the live token realm, never redeployed

Value

"gno.land/r/g1leu8d2vsplhehcfkjg50mwgdpxdkt8tztu95wr/bubble"

hlbubblePath

untyped string

Value

"gno.land/r/g1zdaz6sypk5tdsjc2fzsqrrn4ttn8qzmnl4waqp/hlbubble"

hlgovPath

untyped string

Value

"gno.land/r/g1zdaz6sypk5tdsjc2fzsqrrn4ttn8qzmnl4waqp/hlgov"

gnot

int64

// one GNOT in ugnot

Value

1000000

launchFee

int64

Value

5000000

launchMinimum

int64

Value

10000000

launchFeeFloor

int64

Value

2000000

launchCapFloor

int64

Value

10000000000

launchMaximum

int64

Value

25000000000

launchRouter

untyped string

// the GNOT token program BXpQkFcsHEsqVxvFQ2e4VSgfDSNBCKQsuKx9Qd2xtKj2

Value

"9c79e6474d5e4cb2e1bb479df49c8d7c0244af0bb1cf452aa573386632894895"

maxI64

uint64

Value

9223372036854775807

launchGovernor

.uverse.address

launchGovernor is the governor (M1k): the mailbox's, compiled here too so a member reads it in this realm's served source; init refuses a deploy with another. bridge/local/e2e.sh swaps it for gnodev's test1.

Value

<gnolang.StringValue>

mustHex

func(s string, what string) []uint8
Open
OID
0a2340…e4e8:27
mustHex details

Inspect func

isRealm

func(a .uverse.address) bool

isRealm is whether an address is a realm of the bridge: the six compiled here, every route realm the mailbox registers (R39) and every one it dropped (AT6: a re-pointed-away successor, a route no more that nothing of the line can move coins out of) — a successor's address, which its page prints as the lock's holder and a holder pastes as a deposit address, is refused as a recipient at send and swept at a credit, to be credited to its owner by id, never paid into a realm's account outside every counter. A handful of reads.

Open
OID
0a2340…e4e8:28
isRealm details

Inspect func

mustNotBePaused

func(fn string)
Open
OID
0a2340…e4e8:30
mustNotBePaused details

Inspect func

mustNotBeDropped

func()

mustNotBeDropped refuses a realm the mailbox dropped from its line (R35): its predecessor re-pointed the migration to another successor while this realm had pulled nothing, so it is a route no more — Solana's token may still name it the router until the next kind 6, and a send or a credit here would be against a lock no realm of the line holds. The mailbox refuses its Dispatch and its Process too; the line's last realm takes every message addressed to it once its import has ended.

Open
OID
0a2340…e4e8:31
mustNotBeDropped details

Inspect func

syncLaunch

func()

syncLaunch empties the meters at the launch, once: they start empty there as at a deploy (§5.4).

Open
OID
0a2340…e4e8:32
syncLaunch details

Inspect func

Locked

func() int64

Locked is the lock: what backs synthetic GNOT on Solana, by the counters (sent − paid).

Open
OID
0a2340…e4e8:34
Locked details

Inspect func

Balance

func() int64

Balance is the ugnot this realm's account holds; it is the lock unless someone sent coins here outside a transfer.

Open
OID
0a2340…e4e8:35
Balance details

Inspect func

Router

func() string

Router is the enrolled router on Solana, in hex.

Open
OID
0a2340…e4e8:36
Router details

Inspect func

Domain

func() uint32

Domain is the Solana domain this route sends to and takes from.

Open
OID
0a2340…e4e8:37
Domain details

Inspect func

Counters

func() (sentTotal int64, paidTotal int64, owed int64, voided int64, lost int64)

Counters is the identity's five counters (§5.9): sentTotal, paidTotal, owed, voided, lost.

Open
OID
0a2340…e4e8:44
Counters details

Inspect func

Migrated

func() string

Migrated is the successor's pkgpath once a migration applied, "" before.

Open
OID
0a2340…e4e8:45
Migrated details

Inspect func

TransferRemote

func(destination uint32, recipient string, amount int64) string

TransferRemote sends amount of GNOT to recipient on destination (a Solana address in base58, or 32 bytes in hex) and returns the message id in hex. The call must be a direct user call sending exactly amount + fee in ugnot: the amount is locked here, the fee goes to r/hlfees. The amount is between the minimum and the per-message maximum; a realm's address as recipient is refused.

Open
OID
0a2340…e4e8:46
TransferRemote details

Inspect func

Process

func(metadata string, message string)

Process takes a token message from Solana and credits a claim to its recipient. Anyone may call it — a relayer, usually — with the verifier's metadata and the message, both in hex. The mailbox checks the verifier and that the message was never delivered; this checks it came from the enrolled router (the old one too, for 7 days after a swap). A refused message stays undelivered and can be brought again. A realm registered as a successor credits nothing before the last page of its predecessor's migration is in (R32) — a message addressed to itself as much as one addressed to the predecessor (AQ1: the mailbox hands a migrated route's messages to its successor) — and a migrated realm refuses before the mailbox is asked: the successor takes it.

Open
OID
0a2340…e4e8:47
Process details

Inspect func

Claim

func(n int) int

Claim pays up to n claims (n ≤ 20) taking recipients in turns under the meters, the fee as each claim's first installment. Anyone may call it; the relayers do. It returns how many claims it paid something on.

Open
OID
0a2340…e4e8:48
Claim details

Inspect func

pay

func(to .uverse.address, amount int64)
Open
OID
0a2340…e4e8:49
pay details

Inspect func

env

func() v0.Env

env is what the state machine asks of this realm.

Open
OID
0a2340…e4e8:50
env details

Inspect func

Request

type

Request is what a builder returns (M1k): the proposal GovDAO's proxy executes after the yield (Proposal), and the same decision the governor runs directly before it (Govern). The closure is one; only who may run it changes with the yield. A Request comes from a builder alone — the type is this realm's and the closure unexported, so no other code can build one or change what it decides — and a stranger holding one can only hand it back to Govern, which refuses everyone but the governor.

Value

hlgnot.Request

who

func(path string, a .uverse.address) string

who names a previous realm in a refusal: its pkgpath, or a user's address.

Open
OID
0a2340…e4e8:51
who details

Inspect func

mustBeGovernor

func()

mustBeGovernor is a decision's identity check (M1k), read from the closure's own live cur: until the governor yields on r/hlmailbox, the governor's own call — the compiled address, by its own transaction (cur.Previous() a user realm: a MsgCall's, or a MsgRun script's ephemeral realm, whose address is the signer's; never another realm), which is Govern's non-crossing call of the closure — and gno.land/r/gov/dao's proposals refused; after it, or when no governor was compiled, the proxy's exact pkgpath, as before M1k, and the governor refused like anyone. A refusal is a panic: a proposal made before the yield survives for a retry after it, within its 14 days.

Open
OID
0a2340…e4e8:52
mustBeGovernor details

Inspect func

propose

func(d v0.Draft) hlgnot.Request
Open
OID
0a2340…e4e8:53
propose details

Inspect func

Govern

func(r hlgnot.Request)

Govern is the governor's way in before the yield (M1k): the governor — the compiled launchGovernor, by its own transaction (the MsgRun script that makes the request in the same transaction; never through another realm) — makes a builder's decision directly, the same closure GovDAO's proxy runs after the yield: the same checks, the same at-once test, the same 7-day queue and 14-day deadline, the same record and events. The closure is called non-crossing, in this frame, so it reads the governor from cur.Previous() as it reads the proxy after the yield. Refused for anyone else, and for everyone once the governor yielded on r/hlmailbox (or when none was compiled): GovDAO's proposals decide then. A request past its 14 days is refused (the deadline error) and made afresh.

Open
OID
0a2340…e4e8:54
Govern details

Inspect func

NewSetCapFloorRequest

func(n int64) hlgnot.Request

NewSetCapFloorRequest sets the day cap's floor (in ugnot): a lowering at once, never below the launch floor; a raise after 7 days.

Open
OID
0a2340…e4e8:55
NewSetCapFloorRequest details

Inspect func

NewSetMaximumRequest

func(n int64) hlgnot.Request

NewSetMaximumRequest sets the per-message maximum (in ugnot), never below the minimum: a lowering at once, a raise after 7 days.

Open
OID
0a2340…e4e8:56
NewSetMaximumRequest details

Inspect func

NewSetFeeRequest

func(fee int64, minimum int64) hlgnot.Request

NewSetFeeRequest sets the fee and the minimum together (in ugnot), the fee not below the fee floor: lowering both at once, raising either after 7 days.

Open
OID
0a2340…e4e8:57
NewSetFeeRequest details

Inspect func

NewSetFeeFloorRequest

func(n int64) hlgnot.Request

NewSetFeeFloorRequest sets the fee floor (in ugnot), not above the fee: a lowering at once, a raise after 7 days.

Open
OID
0a2340…e4e8:58
NewSetFeeFloorRequest details

Inspect func

NewSetRouterRequest

func(router string) hlgnot.Request

NewSetRouterRequest swaps the router (a Solana program id in base58, or 32 bytes in hex) after 7 days; the old router's messages stay accepted for 7 days more.

Open
OID
0a2340…e4e8:59
NewSetRouterRequest details

Inspect func

NewVoidRequest

func(ids string, forged bool, unpauseFns string, removeSeats string) hlgnot.Request

NewVoidRequest voids credits by message id (comma separated, up to 256; a claim, or a sweep entry as forged) or by a range of credits ("heights:\<from>-\<to>", every credit at those block heights; "since:\<from>", every credit the verifier made from that height on), closed at the height the proposal is made and covering at most 1,000 credits (a bigger range is split by heights), as withheld (the remainder stays booked, restorable) or as forged (the remainder dropped, the paid part lost; a sweep entry's amount dropped from what is owed). A credit a guardian's standing payouts flag names — by id, or by a range covering it — is voided the moment the proposal executes; the rest wait 7 days. The unpause option takes the unpause builder's parameters — the functions whose flags to clear (sends, credits, payouts; comma separated, "" for none) and the seats to vacate (comma separated, "" for none; each seat's holder now is recorded, and a seat whose occupant changed by execution is skipped) — applied in the same closure, after the void.

Open
OID
0a2340…e4e8:60
NewVoidRequest details

Inspect func

NewRestoreRequest

func(ids string) hlgnot.Request

NewRestoreRequest restores voided claims by message id: a withheld one at once, a forged one after 7 days.

Open
OID
0a2340…e4e8:61
NewRestoreRequest details

Inspect func

NewCreditRequest

func(id string, to .uverse.address, amount int64) hlgnot.Request

NewCreditRequest credits a claim by hand after 7 days: amount (in ugnot) to a recipient under a message id. It marks the id done and refuses an id already done, unless that id's claim stands voided, in which case the claim is restored and its remainder replaced by this recipient and amount at the back of the recipient's queue.

Open
OID
0a2340…e4e8:62
NewCreditRequest details

Inspect func

NewSweepRequest

func(ids string, to .uverse.address) hlgnot.Request

NewSweepRequest pays sweep entries, named by message id (comma separated, up to 256), to an address after 7 days: their sum, at most the lock. The paid entries are dropped (R19), so none is ever paid, credited by id or voided twice; an entry voided or gone by then is skipped, the decision's note saying so.

Open
OID
0a2340…e4e8:63
NewSweepRequest details

Inspect func

NewRefundRequest

func(ids string) hlgnot.Request

NewRefundRequest queues a refund of sends by message id (comma separated) to their senders, 7 days: the cure for sends a migration stranded undelivered — the sends imported from the predecessor, once kind 6 has enrolled this realm on Solana for 14 days by r/hlgov's note with the mailbox (AR1, R37: a refunded send stays deliverable there until the predecessor's router is replaced), checked when the proposal is made and when it applies. After the 7 days GovDAO applies it by NewApplyRefundRequest (AT2), never anyone by Execute.

Open
OID
0a2340…e4e8:64
NewRefundRequest details

Inspect func

NewApplyRefundRequest

func(id int64) hlgnot.Request

NewApplyRefundRequest applies a queued refund decision whose 7 days have passed, at once (AT2): GovDAO's own act, the member having read hlwatch's gate first — the token's router on Solana is this realm and the kind 6 is executed there — since this realm cannot see Solana, and a refund applied while the predecessor is still the router lets the refunded sender deliver his send there after it (minted twice, AR1); Execute refuses a refund. The apply is the delay's own: the note's 14 days asked again, the sum at most the lock; under a standing payouts flag it waits for the unpause like a claim (the closure refuses, the proposal retried within its 14 days). Refused for a decision that is no refund, not pending, or not yet due; the description names the refund decision and carries its text, the ids included.

Open
OID
0a2340…e4e8:65
NewApplyRefundRequest details

Inspect func

NewWriteOffRequest

func(ids string) hlgnot.Request

NewWriteOffRequest books refunded sends, by message id (comma separated), as lost after 7 days (AR1): a refunded send delivered on Solana after all (a stranger's Reemit) minted a second time against nothing, and the write-off closes the identity by its amount; only a refunded send, once — the member reads hlwatch's DELIVERED line for the id first.

Open
OID
0a2340…e4e8:66
NewWriteOffRequest details

Inspect func

NewMigrateRequest

func(to string) hlgnot.Request

NewMigrateRequest hands the lock, the claims and the send records to a successor realm after 7 days: the successor then calls Pull from its own code and takes them over. The successor must have announced itself to the mailbox from its own code first, for the GNOT route (hlmailbox.AnnounceSuccessor(cur, "GNOT"), R25 and AQ5), and must not be a route the mailbox registers already (R31) — checked when the proposal is made and when it applies, so the lock never goes to a path with no realm behind it, nor to the BUBBLE route's successor by a slip. A realm that succeeds another (a successor registered by its predecessor's migrate) migrates on only once its own import has ended (R31): before page 0 nothing has moved and the lock would be stranded for good.

Open
OID
0a2340…e4e8:67
NewMigrateRequest details

Inspect func

NewCancelRequest

func(id int64) hlgnot.Request

NewCancelRequest cancels a pending decision of this route, at once. It is proposed before Launch too.

Open
OID
0a2340…e4e8:68
NewCancelRequest details

Inspect func

Execute

func(id int64)

Execute applies a queued decision whose 7 days have passed. Anyone may call it; the relayers do. A sweep payment moves coins out of the lock, so under a standing payouts flag it waits for the unpause like a claim (§5.9: nothing paid under a suspect verifier). A refund is never Execute's (AT2): the state refuses the kind, and GovDAO applies it by NewApplyRefundRequest after hlwatch's Solana check.

Open
OID
0a2340…e4e8:69
Execute details

Inspect func

Pull

func(page int) *v0.Snapshot

Pull is the successor's: once a migrate decision names it, the realm at that pkgpath calls Pull from its own code, page by page from 0, and receives the lock (paid to its address, with page 0) and the records to import, up to 500 a page (the snapshot's More says whether a page follows); a page pulled already hands over nothing. Page 0 moves the lock, so under a standing payouts flag it waits for the unpause like a sweep payment (R27, R16: nothing paid under a suspect verifier); the flag follows the claims to the successor (hlmailbox.AddRoute).

Open
OID
0a2340…e4e8:70
Pull details

Inspect func

Render

func(path string) string

Render: "" the route's page (the first 100 waiting claims and sweep entries, the rest counted) "decisions" the decisions page: the last 100 pending and executed per kind "json" the figures for the agents "decisions.json" every decision "claim/<id>" one claim by message id, or the swept amount, or "null" "claims/<from>" up to 100 waiting claims from the <from>-th on, in the page's order, as a JSON array "sweeps/<from>" up to 100 sweep entries from the <from>-th on, by id, as a JSON array "send/<id>" one send by message id ({"id","from","amount","at","imported","refunded","writtenOff"}), or "null" "refunds/<from>" up to 100 sends refunded here from the <from>-th on, by id, as a JSON array (AQ2: what the monitors read to drop a refunded send from what is in flight)

Open
OID
0a2340…e4e8:72
Render details

Inspect func

parseFrom

func(s string) int

parseFrom reads a page's offset; -1 (an empty page) for anything but a number.

Open
OID
0a2340…e4e8:73
parseFrom details

Inspect func
namespace : untyped string ="gno.land/r/g1zdaz6sypk5tdsjc2fzsqrrn4ttn8qzmnl4waqp/"
pkgPath : untyped string ="gno.land/r/g1zdaz6sypk5tdsjc2fzsqrrn4ttn8qzmnl4waqp/hlgnot"
mailboxPath : untyped string ="gno.land/r/g1zdaz6sypk5tdsjc2fzsqrrn4ttn8qzmnl4waqp/hlmailbox"
feesPath : untyped string ="gno.land/r/g1zdaz6sypk5tdsjc2fzsqrrn4ttn8qzmnl4waqp/hlfees"
bubblePath : untyped string ="gno.land/r/g1leu8d2vsplhehcfkjg50mwgdpxdkt8tztu95wr/bubble"
hlbubblePath : untyped string ="gno.land/r/g1zdaz6sypk5tdsjc2fzsqrrn4ttn8qzmnl4waqp/hlbubble"
hlgovPath : untyped string ="gno.land/r/g1zdaz6sypk5tdsjc2fzsqrrn4ttn8qzmnl4waqp/hlgov"
gnot : int64 =1000000
launchFee : int64 =5000000
launchMinimum : int64 =10000000
launchFeeFloor : int64 =2000000
launchCapFloor : int64 =10000000000
launchMaximum : int64 =25000000000
launchRouter : untyped string ="9c79e6474d5e4cb2e1bb479df49c8d7c0244af0bb1cf452aa573386632894895"
maxI64 : uint64 =9223372036854775807
launchGovernor : .uverse.address =<gnolang.StringValue>
st : *v0.State Inspect
realms : [].uverse.address (len=6) Inspect
init.18 : func() Inspect
mustKey : func(s string) [32]uint8 Inspect
now : func() int64 Inspect
u32 : func(n uint32) string Inspect
itoa : func(n int64) string Inspect
caller : func() .uverse.address Inspect
mustHex : func(s string, what string) []uint8 Inspect
isRealm : func(a .uverse.address) bool Inspect
mustBeLive : func() Inspect
mustNotBePaused : func(fn string) Inspect
mustNotBeDropped : func() Inspect
syncLaunch : func() Inspect
Address : func() .uverse.address Inspect
Locked : func() int64 Inspect
Balance : func() int64 Inspect
Router : func() string Inspect
Domain : func() uint32 Inspect
Fee : func() int64 Inspect
Minimum : func() int64 Inspect
FeeFloor : func() int64 Inspect
CapFloor : func() int64 Inspect
Maximum : func() int64 Inspect
Cap : func() int64 Inspect
Counters : func() (sentTotal int64, paidTotal int64, owed int64, voided int64, lost int64) Inspect
Migrated : func() string Inspect
TransferRemote : func(destination uint32, recipient string, amount int64) string Inspect
Process : func(metadata string, message string) Inspect
Claim : func(n int) int Inspect
pay : func(to .uverse.address, amount int64) Inspect
env : func() v0.Env Inspect
Request : type =hlgnot.Request
who : func(path string, a .uverse.address) string Inspect
mustBeGovernor : func() Inspect
propose : func(d v0.Draft) hlgnot.Request Inspect
Govern : func(r hlgnot.Request) Inspect
NewSetCapFloorRequest : func(n int64) hlgnot.Request Inspect
NewSetMaximumRequest : func(n int64) hlgnot.Request Inspect
NewSetFeeRequest : func(fee int64, minimum int64) hlgnot.Request Inspect
NewSetFeeFloorRequest : func(n int64) hlgnot.Request Inspect
NewSetRouterRequest : func(router string) hlgnot.Request Inspect
NewVoidRequest : func(ids string, forged bool, unpauseFns string, removeSeats string) hlgnot.Request Inspect
NewRestoreRequest : func(ids string) hlgnot.Request Inspect
NewCreditRequest : func(id string, to .uverse.address, amount int64) hlgnot.Request Inspect
NewSweepRequest : func(ids string, to .uverse.address) hlgnot.Request Inspect
NewRefundRequest : func(ids string) hlgnot.Request Inspect
NewApplyRefundRequest : func(id int64) hlgnot.Request Inspect
NewWriteOffRequest : func(ids string) hlgnot.Request Inspect
NewMigrateRequest : func(to string) hlgnot.Request Inspect
NewCancelRequest : func(id int64) hlgnot.Request Inspect
Execute : func(id int64) Inspect
Pull : func(page int) *v0.Snapshot Inspect
pausedText : func() string Inspect
Render : func(path string) string Inspect
parseFrom : func(s string) int Inspect