func Apply
crossing ActionApply asks the poster to be assigned to an open bounty.
Community realm. Read the code first. Community realm, deployed by its author. Read the code before you interact or send coins.
Package bounties is Guildhall's escrowed bounty board.
Package bounties is Guildhall's escrowed bounty board.
Anyone can post a task, fund it with GNOT (or any native coin) or any token in the grc20 registry, and split it into milestones. Funds sit in this realm until the bounty's reviewers approve a milestone, at which point the milestone is paid to the contributor and a record of the work is written to gno.land/r/g1lnkytfqcjwllws63gvf0mv9yt04aswy4y9amhm/guildhall/reputation. Contested milestones go to an arbiter, who can pay the worker, refund the poster, or split the difference.
The rules live in gno.land/p/g1lnkytfqcjwllws63gvf0mv9yt04aswy4y9amhm/guildhall/bounty. This realm holds the funds, authenticates callers, moves coins, and renders the board.
Apply asks the poster to be assigned to an open bounty.
Approve records a reviewer's approval of a submitted milestone. The approval that reaches the quorum releases the milestone's funds to the contributor and writes a reputation record.
Assign hands an open bounty to a contributor. Poster only.
Cancel withdraws an open bounty and refunds every unpaid milestone to the poster. Active bounties must be unassigned first.
Count returns the number of bounties ever posted.
CountByStatus returns the number of bounties in status ("open", "active", "completed" or "cancelled").
Escrowed returns what the board currently holds for denom (a native denom or a grc20reg key).
IsPaused reports whether posting is paused.
OpenDispute escalates a submitted or rejected milestone to the arbiter. The poster or the contributor who submitted it may open one.
1func PostBounty(cur realm, title, description, link, tags, reviewers string, quorum int, milestones, arbiter string, workWindowDays int) uint64PostBounty posts a bounty funded with the native coins sent along with the call. milestones is "Title=amount;Title=amount" and must add up to exactly what was sent; leave it empty for a single milestone worth the whole amount. reviewers is a comma-separated address list (empty means the poster reviews alone) and quorum is how many of them must approve each milestone. An empty arbiter delegates disputes to the Guildhall council.
1func PostBountyGRC20(cur realm, tokenKey, title, description, link, tags, reviewers string, quorum int, milestones, arbiter string, workWindowDays int) uint64PostBountyGRC20 posts a bounty funded with a registered GRC20 token. The caller must first approve this realm's address for the milestone total on the token; this call pulls the funds into escrow.
RequestChanges sends a submitted milestone back with feedback.
Resolve settles a disputed milestone. workerBps is the share, in basis points (0..10000), paid to the contributor; the rest is refunded to the poster. Arbiter only.
SetPaused stops (or resumes) the posting of new bounties. Work on existing bounties, payouts and refunds are never paused.
Submit hands milestone (1-based) in for review, pointing at the work.
TransferCouncil hands the council seat to a new address, typically an arbitration committee's multisig. Bounties posted with the council as arbiter follow. Only the current council can move the seat.
Unassign returns an active bounty to the open pool. The assignee may step back at any time; the poster may reclaim it once the work window has passed. Milestones awaiting review or arbitration must be settled first.