params.gno
2.79 Kb · 69 lines
1package padv9
2
3// Protocol parameters (MVP). Tunable before deploy; post-deploy treated as constants
4// unless a future governance path is added with timelock.
5
6const (
7 // Token economics
8 TotalSupply int64 = 1_000_000_000
9 CurveSupply int64 = 800_000_000 // sold on bonding curve
10 // PoolSeed is legacy: graduation seeds LP with ALL remaining tokens
11 // (TotalSupply - RealSold), not a fixed 200M reserve.
12 PoolSeed int64 = 200_000_000
13
14 // Virtual constant-product seed (Pump-style)
15 VirtualUgnot0 int64 = 30_000_000 // 30 GNOT virtual
16 VirtualToken0 int64 = 1_073_000_191 // virtual token side
17
18 // Graduation when net ugnot raised into the curve reaches this.
19 // Sapphire deploy patches to 100 GNOT.
20 // Keep below the ugnot needed to exhaust CurveSupply on the virtual CPMM.
21 GraduationThreshold int64 = 100_000_000
22
23 // Fees: 1.20% total. Of the fee: 40% creator, 40% protocol, 20% LP/k remainder.
24 FeeBPS int64 = 120
25 CreatorFeeShareBPS int64 = 4000
26 ProtocolFeeShareBPS int64 = 4000
27
28 // Fallback create bond for unit tests / if bond realm unavailable.
29 // Production pad uses createbond.CurrentBondUgnot() (see bond package).
30 // Sapphire normal bond = 2 GNOT; promo ≈ $20 in ugnot set on bond.StartPromo.
31 CreateBondUgnot int64 = 2_000_000
32 BondRefundBuyers int = 5
33 BondRefundMinRaised int64 = 10_000_000 // ≥5 GNOT raised
34 BondRefundMaxHeights int64 = 100_000
35
36 // Anti-snipe: first N heights, max cumulative tokens per address (BPS of TotalSupply).
37 AntiSnipeHeights int64 = 30
38 AntiSnipeMaxBuyBPS int64 = 300 // 5% per address in window
39
40 // Status
41 StatusCurve = 0
42 StatusGraduated = 1
43
44 // Trade history ring buffer.
45 MaxTradeHistory = 256
46 // Trade sides stored in history
47 TradeSideBuy = 0
48 TradeSideSell = 1
49 TradeSideOpen = 2 // initial listing mark
50
51 DenomUgnot = "ugnot"
52
53 // --- Gnoswap auto-list (Sapphire) ---
54 // CreatePool fee is fixed in GNS (pool.GetPoolCreationFee, typically 100e6 = 100 GNS).
55 // GNOT cost of that fee MOVES with market (~10 GNOT/GNS on Sapphire probe → ~1000 GNOT/listing).
56 //
57 // Funding model (price-safe):
58 // LP = raised-sized WUGNOT (protected — never sold for fee)
59 // Fee = pre-funded GNS on pad OR surplus WUGNOT above raised (ExactOut → GNS)
60 // wugnot.Deposit is EOA-only — protocol wraps off-pad and transfers inventory in.
61 GnoswapFeeTier uint32 = 3000 // 0.3% meme tier
62 GnoswapTickSpacing int32 = 60
63 GnoswapMinTick int32 = -887272
64 GnoswapMaxTick int32 = 887272
65 // Max WUGNOT (ugnot units) allowed for ExactOut fee buy — price ceiling / slippage cap.
66 // Not tied to raised/2. At ~10 GNOT/GNS, 100 GNS needs ~1006 GNOT; 5000 leaves headroom
67 // if GNS becomes ~5× more expensive vs GNOT. Prefer pre-funding GNS to skip this path.
68 GnoswapMaxFeeWugnot int64 = 5_000_000_000 // 5000 GNOT
69)