const namespace, pkgPath, KindCancel, KindUnpause, KindTokenISM, KindReserved, KindGuardians, KindRouter, KindProtocolFee, KindUpgrade, KindSuccessor, KindMintLimits, maxCancel, maxProtocolFee, MaxDecisionBody, syncReach, seatCount, guardianSeats, maxSeatChanges, launchRecipient, launchPausableISM, launchClient, launchSolSeat1, launchSolSeat2, launchSolSeat3, launchSolSeat4, launchSolSeat5, launchSolSeat6, launchSequence
1const (
2 namespace = "gno.land/r/g1zdaz6sypk5tdsjc2fzsqrrn4ttn8qzmnl4waqp/"
3 pkgPath = namespace + "hlgov" // must match gnomod.toml
4
5 // The kinds (§13).
6 KindCancel = uint8(1)
7 KindUnpause = uint8(2)
8 KindTokenISM = uint8(3)
9 KindReserved = uint8(4) // reserved (§13): the client's state layout is fixed for the deployment's life; refused
10 KindGuardians = uint8(5)
11 KindRouter = uint8(6)
12 KindProtocolFee = uint8(7)
13 KindUpgrade = uint8(8)
14 KindSuccessor = uint8(9)
15 KindMintLimits = uint8(12) // set mint limits (§13): a token's per-message maximum and day cap on the pausable ISM; the 7-day group
16
17 maxCancel = 16 // numbers one cancel names
18 maxProtocolFee = 50_000_000 // lamports: the mailbox's max_protocol_fee, 0.05 SOL, fixed at its init (§5.5)
19 // MaxDecisionBody bounds a decision's body (kind ‖ number ‖ params) at what Solana can ever deliver (the
20 // assumptions audit's F18, M1g part 2): a legacy delivery of a decision carries at most 538 bytes of body — 529
21 // of parameters, what 14 account keys and 127 bytes of fixed instruction data leave of the 1,232-byte packet —
22 // and Hyperlane's mainnet mailbox dies on its own 32 KB heap past about 2,250 parameter bytes anyway (M2-NOTES
23 // M2f), so a body no one can deliver would stick this realm's sequence with its number untaken, in a form no
24 // program of ours cures. Every builder's body is far below (a cancel at most 163 bytes with its salt, kind 5 at
25 // most 4 entries); the bound stands where this realm dispatches, checked when a proposal is made and in its
26 // closure.
27 MaxDecisionBody = 512
28 syncReach = uint64(1) << 32 // a sync sequence raises the counter by at most this (the realm's own bound, §13; kind 10 is reserved since v35)
29 seatCount = 6
30 guardianSeats = 4
31 maxSeatChanges = 4 // kind 5: two guardian seats plus either watch slot
32
33 // The launch values (§5.3, §6.5): the admin program (the first decision recipient), the pausable ISM (the only
34 // id kind 3 may name), the light client (the pausable ISM's target, whose state layout is fixed for the
35 // deployment's life — kind 4 is reserved — shown on the page for a member's check), and the four guardians' and
36 // two watch keys' Solana pubkeys as the admin program's init data carries them. PLACEHOLDERS until the Solana
37 // programs are deployed and the people have keys; bridge/local/e2e.sh swaps the program ids for its run's.
38 launchRecipient = "38885bd746ab9dc9b6175331a61842d0ad8e0c4c2532f72e286ef7dac82b0358" // the admin program 4ogRnw9iPGa4dY8qqCs1aBWxHQvKSzHh5ttz53sLFTM9
39 launchPausableISM = "564eab462a321148f88d548996d0fd5e84c66ab630f0f4da63331592d7dce221" // the pausable ISM 6oudxto59ktYrpvqEVXTb5Tuo7vzBpkgnsPWoPXVF5Fv
40 launchClient = "1a572d156787a62750999f343e5af6f7394f91c11f75a2949e9aefd8914e07ad" // the light client 2mphYtLZ7HnCfrFhGH2c4Do9C9UoysevkmkDb8UkbAu2
41 launchSolSeat1 = "05a1af200cfddc3b3ace76353505098855c9994913f7282f2e45ce6e473dcd6e" // Nz2u3N3RAMwq9pjw1Vv7ktN7nX4rNe4Uw5rdL9o9c3o
42 launchSolSeat2 = "028b184c1fe43ac501409db4eb45a47bc2cd280226cca57345b802d27175e5b4" // AvqEe2hdx3HH87NU9CR5GSarCD1sR6PQ2H5AjwSnC4b
43 launchSolSeat3 = "95b3b44e5adc9a0e849285e59cf6e7b0dab53e3a8772f680990f73a6111f494c" // B5NgM4oD1vYKTEGSe33RaSsHbyGzxKvoaycGqhjbyEV1
44 launchSolSeat4 = "05ec99dd32dbee307eb064892f68581b9da9ee928df5a00d7f491f0f1b4fc3d2" // Q8HoML8efSufEhvYsSffmHAGJ6YnYb2QwyMVwQYt9Ds
45 launchSolSeat5 = "195a00fb58ce0d7f762cc2b3d72017100724768fa2ae828c055d57530b34077a" // 2hxnxGiPf6cuuYXjThehyDnkXpUKjQai8fp14zkcgzjB
46 launchSolSeat6 = "24551f378d8bbdc915fd4497aa9bf73a5eb5f99447755eb9f7c751aed3d558e2" // 3SpxeQf1JTfErvkpd3Kq33Q72H4yhLynKPVECdj9ckmf
47
48 // launchSequence is the number of the last decision this realm's predecessor dispatched — 0 for a chain's
49 // first r/hlgov. A successor r/hlgov for a new chain is deployed with its predecessor's last number here
50 // (§5.3), so its counter starts where the admin program's stands and never restarts below a recorded number.
51 // Written by init; the page shows it beside the counter.
52 launchSequence = uint64(0)
53)