@@ -14,8 +14,9 @@ func ListBounties() string {
1414 minSend := ufmt.Sprintf("%dugnot", minimumBounty)
1515 createBountyLink := txlink.NewLink("CreateBounty").
1616 AddArgs(
17- "issueURL", "https://github.com/your-org/your-repo/issues/123",
18- "description", "Describe the work your bounty covers",
17+ "title", "",
18+ "issueURL", "",
19+ "description", "",
1920 ).
2021 SetSend(minSend).
2122 URL()
@@ -31,6 +32,8 @@ func ListBounties() string {
3132 output += ufmt.Sprintf(" _(minimum reward: %s)_", minSend)
3233 output += " | "
3334 output += md.Link("📋 View All Validators", "/r/greg007/gnobounty:validators")
35+ output += " | "
36+ output += md.Link("🏆 Leaderboard", "/r/greg007/gnobounty:leaderboard")
3437 output += "\n\n"
3538
3639 // Add validator stats
@@ -39,6 +42,7 @@ func ListBounties() string {
3942
4043 output += "---\n\n"
4144 output += "## 💎 Active Bounties\n\n"
45+ output += "**How to apply:** To apply to a bounty, you need to give your **MERGED PR** (important) URL in the transaction. You also need to write your Gno address in the description of your PR to verify your identity. If no address is written, the bounty can be refused.\n\n"
4246
4347 if bountyCount == 0 {
4448 output += "No bounties available"
@@ -48,7 +52,7 @@ func ListBounties() string {
4852 bounties.Iterate("", "", func(key string, value interface{}) bool {
4953 bounty := value.(*Bounty)
5054 if !bounty.IsClaimed {
51- output += ufmt.Sprintf("## Bounty #%d\n", bounty.ID)
55+ output += ufmt.Sprintf("## Bounty #%d: %s \n", bounty.ID, bounty.Title )
5256 output += ufmt.Sprintf("**Issue:** %s\n", bounty.IssueURL)
5357 output += ufmt.Sprintf("**Description:** %s\n", bounty.Description)
5458 output += ufmt.Sprintf("**Reward:** %d ugnot (%.2f GNOT)\n", bounty.Amount, float64(bounty.Amount)/1000000.0)
@@ -59,7 +63,7 @@ func ListBounties() string {
5963 applyLink := txlink.NewLink("ApplyForBounty").
6064 AddArgs(
6165 "bountyID", ufmt.Sprintf("%d", bounty.ID),
62- "prLink", "https://github.com/your-org/your-repo/pull/123 ",
66+ "prLink", "",
6367 ).
6468 URL()
6569 output += md.Link("📝 Apply for this bounty", applyLink)
@@ -83,7 +87,7 @@ func GetBountyDetails(id uint64) string {
8387 return "Bounty not found"
8488 }
8589
86- output := ufmt.Sprintf("# Bounty #%d\n\n", bounty.ID)
90+ output := ufmt.Sprintf("# Bounty #%d: %s \n\n", bounty.ID, bounty.Title )
8791 output += ufmt.Sprintf("**Issue URL:** %s\n", bounty.IssueURL)
8892 output += ufmt.Sprintf("**Description:** %s\n", bounty.Description)
8993 output += ufmt.Sprintf("**Reward:** %d ugnot (%.2f GNOT)\n", bounty.Amount, float64(bounty.Amount)/1000000.0)
@@ -96,12 +100,13 @@ func GetBountyDetails(id uint64) string {
96100 output += ufmt.Sprintf("**Claimed at:** %s\n", bounty.ClaimedAt.Format("2006-01-02 15:04:05"))
97101 } else {
98102 output += ufmt.Sprintf("**Status:** OPEN\n\n")
103+ output += "**How to apply:** To apply to a bounty, you need to give your **MERGED PR** (important) URL in the transaction. You also need to write your Gno address in the description of your PR to verify your identity. If no address is written, the bounty can be refused.\n\n"
99104
100105 // Add apply button
101106 applyLink := txlink.NewLink("ApplyForBounty").
102107 AddArgs(
103108 "bountyID", ufmt.Sprintf("%d", id),
104- "prLink", "https://github.com/your-org/your-repo/pull/123 ",
109+ "prLink", "",
105110 ).
106111 URL()
107112 output += md.Link("Apply for this bounty", applyLink) + "\n\n"
@@ -267,15 +272,10 @@ func RenderValidators() string {
267272 output := ListValidators()
268273
269274 // Add register button
270- registerValidatorLink := txlink.NewLink("AddValidator").
271- AddArgs(
272- "validatorAddr", "your_address_here",
273- ).
274- URL()
275+ registerValidatorLink := txlink.NewLink("AddValidator").URL()
275276 output += "## Register\n\n"
276277 output += md.Link("👨⚖️ Register as Validator", registerValidatorLink)
277278 output += "\n\n"
278- output += "_Note: Replace 'your_address_here' with your actual address when registering._\n"
279279
280280 return output
281281}
@@ -291,6 +291,10 @@ func Render(path string) string {
291291 return RenderValidators()
292292 }
293293
294+ if path == "leaderboard" {
295+ return RenderLeaderboard()
296+ }
297+
294298 // Parse bounty ID from path
295299 id, err := strconv.Atoi(path)
296300 if err != nil {
0 commit comments