realmPath
untyped stringValue
"gno.land/r/g1lnkytfqcjwllws63gvf0mv9yt04aswy4y9amhm/guildhall/bounties"
apiMaxLimit
untyped bigintValue
(50 <untyped> bigint)
apiMaxScan
untyped bigintValue
(2000 <untyped> bigint)
apiMaxToken
untyped bigintValue
(200 <untyped> bigint)
renderAPI
func(route string, q url.Values) stringrenderAPI serves JSON for the web app, under Render("api/..."): api/stats counts, escrow totals, council, paused api/bounties?status=&tag=&page=&limit= newest first; status "all" or empty for every bounty api/bounty/<id> a bounty with milestones, disputes and applications api/user/<address>?page=&limit= bounties an address is involved in, with roles api/tokens registered GRC20 tokens usable for funding
- OID
- 022746…dbba:3
renderAPI details
apiStats
func() string- OID
- 022746…dbba:5
apiStats details
apiList
func(q url.Values) string- OID
- 022746…dbba:6
apiList details
apiUser
func(addr .uverse.address, q url.Values) string- OID
- 022746…dbba:7
apiUser details
apiTokens
func() string- OID
- 022746…dbba:8
apiTokens details
bountyJSON
func(bn *v0.Bounty, full bool) string- OID
- 022746…dbba:9
bountyJSON details
denomFields
func(denom string, isGRC20 bool) []stringdenomFields describes how to display amounts of denom.
- OID
- 022746…dbba:10
denomFields details
roles
func(bn *v0.Bounty, addr .uverse.address) []string- OID
- 022746…dbba:11
roles details
limitOf
func(q url.Values) int- OID
- 022746…dbba:12
limitOf details
apiError
func(msg string) string- OID
- 022746…dbba:13
apiError details
maxWorkWindowDays
untyped bigintValue
(365 <untyped> bigint)
bounties
v0.Tree// padded id -> \*bounty.Bounty
- OID
- 022746…dbba:15
bounties details
lastID
uint64Value
2
byUser
v0.Tree// address -> \*avl.Tree(padded id -> struct{})
- OID
- 022746…dbba:18
byUser details
councilArbitrated
v0.Tree- OID
- 022746…dbba:20
councilArbitrated details
statusCount
map[v0.Status]int- OID
- 022746…dbba:22
statusCount details
escrowed
v0.Tree// denom key -> int64 currently held
- OID
- 022746…dbba:24
escrowed details
council
*v0.Ownable- OID
- 022746…dbba:85
council details
paused
boolValue
false
InitialCouncil
.uverse.addressValue
<gnolang.StringValue>
init.24
func()- OID
- 022746…dbba:27
init.24 details
PostBounty
func(title string, description string, link string, tags string, reviewers string, quorum int, milestones string, 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.
- OID
- 022746…dbba:29
PostBounty details
PostBountyGRC20
func(tokenKey string, title string, description string, link string, tags string, reviewers string, quorum int, milestones string, 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.
- OID
- 022746…dbba:30
PostBountyGRC20 details
newBounty
func(denom string, isGRC20 bool, title string, description string, link string, tags string, reviewers string, quorum int, specs []v0.MilestoneSpec, arbiter string, workWindowDays int) *v0.Bounty- OID
- 022746…dbba:31
newBounty details
store
func(b *v0.Bounty) uint64- OID
- 022746…dbba:32
store details
Apply
func(id uint64, pitch string)Apply asks the poster to be assigned to an open bounty.
- OID
- 022746…dbba:33
Apply details
Assign
func(id uint64, assignee .uverse.address)Assign hands an open bounty to a contributor. Poster only.
- OID
- 022746…dbba:34
Assign details
Unassign
func(id uint64)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.
- OID
- 022746…dbba:35
Unassign details
Submit
func(id uint64, milestone int, link string)Submit hands milestone (1-based) in for review, pointing at the work.
- OID
- 022746…dbba:36
Submit details
Approve
func(id uint64, milestone int)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.
- OID
- 022746…dbba:37
Approve details
RequestChanges
func(id uint64, milestone int, feedback string)RequestChanges sends a submitted milestone back with feedback.
- OID
- 022746…dbba:38
RequestChanges details
OpenDispute
func(id uint64, milestone int, reason string)OpenDispute escalates a submitted or rejected milestone to the arbiter. The poster or the contributor who submitted it may open one.
- OID
- 022746…dbba:39
OpenDispute details
Resolve
func(id uint64, milestone int, workerBps int, ruling string)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.
- OID
- 022746…dbba:40
Resolve details
Cancel
func(id uint64)Cancel withdraws an open bounty and refunds every unpaid milestone to the poster. Active bounties must be unassigned first.
- OID
- 022746…dbba:41
Cancel details
Council
func() .uverse.address- OID
- 022746…dbba:42
Council details
TransferCouncil
func(newCouncil .uverse.address)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.
- OID
- 022746…dbba:43
TransferCouncil details
emitCouncil
func(addr .uverse.address)- OID
- 022746…dbba:44
emitCouncil details
SetPaused
func(p bool)SetPaused stops (or resumes) the posting of new bounties. Work on existing bounties, payouts and refunds are never paused.
- OID
- 022746…dbba:45
SetPaused details
Count
func() intCount returns the number of bounties ever posted.
- OID
- 022746…dbba:46
Count details
CountByStatus
func(status string) intCountByStatus returns the number of bounties in status ("open", "active", "completed" or "cancelled").
- OID
- 022746…dbba:47
CountByStatus details
Escrowed
func(denom string) int64Escrowed returns what the board currently holds for denom (a native denom or a grc20reg key).
- OID
- 022746…dbba:48
Escrowed details
IsPaused
func() boolIsPaused reports whether posting is paused.
- OID
- 022746…dbba:49
IsPaused details
settle
func(int, rlm .uverse.realm, b *v0.Bounty, payouts []v0.Payout, reviewers [].uverse.address, arbitrated bool)settle executes payouts, crediting reputation for each payment to a worker.
- OID
- 022746…dbba:50
settle details
transfer
func(int, rlm .uverse.realm, b *v0.Bounty, to .uverse.address, amount int64)- OID
- 022746…dbba:51
transfer details
mustGet
func(id uint64) *v0.Bounty- OID
- 022746…dbba:52
mustGet details
getBounty
func(id uint64) *v0.Bounty- OID
- 022746…dbba:53
getBounty details
moved
func(b *v0.Bounty, before v0.Status)- OID
- 022746…dbba:54
moved details
addEscrow
func(b *v0.Bounty, delta int64)- OID
- 022746…dbba:55
addEscrow details
index
func(addr .uverse.address, id uint64)- OID
- 022746…dbba:56
index details
assertNotPaused
func()- OID
- 022746…dbba:57
assertNotPaused details
check
func(err .uverse.error)- OID
- 022746…dbba:58
check details
emit
func(event string, b *v0.Bounty, kv []string)- OID
- 022746…dbba:59
emit details
idKey
func(id uint64) string- OID
- 022746…dbba:60
idKey details
clip
func(s string, n int) string- OID
- 022746…dbba:61
clip details
realmURL
untyped stringValue
"/r/g1lnkytfqcjwllws63gvf0mv9yt04aswy4y9amhm/guildhall/bounties"
repURL
untyped stringValue
"/r/g1lnkytfqcjwllws63gvf0mv9yt04aswy4y9amhm/guildhall/reputation"
pageSize
untyped bigintValue
(20 <untyped> bigint)
Render
func(path string) stringRender serves the bounty board: "" the board (?status=open|active|completed|cancelled|all, ?tag=x, ?page=N) <id> a bounty with its milestones and next actions u/<address> bounties an address posted, works on, reviews or applied to post how to post a bounty
- OID
- 022746…dbba:62
Render details
renderBoard
func(q url.Values) string- OID
- 022746…dbba:64
renderBoard details
renderBounty
func(id uint64) string- OID
- 022746…dbba:65
renderBounty details
renderActions
func(bn *v0.Bounty) stringrenderActions lists the transactions that can move the bounty forward, as gnoweb transaction links. The chain enforces who may call them; the page just lists them all.
- OID
- 022746…dbba:66
renderActions details
renderUser
func(addr .uverse.address, page int) string- OID
- 022746…dbba:67
renderUser details
renderPost
func() string- OID
- 022746…dbba:68
renderPost details
bountyTable
func(list []*v0.Bounty) string- OID
- 022746…dbba:69
bountyTable details
milestoneStatus
func(m *v0.Milestone) string- OID
- 022746…dbba:70
milestoneStatus details
role
func(bn *v0.Bounty, addr .uverse.address) string- OID
- 022746…dbba:71
role details
hasTag
func(bn *v0.Bounty, tag string) bool- OID
- 022746…dbba:72
hasTag details
tagSuffix
func(bn *v0.Bounty) string- OID
- 022746…dbba:73
tagSuffix details
person
func(addr .uverse.address) string- OID
- 022746…dbba:74
person details
linkOrText
func(s string) string- OID
- 022746…dbba:75
linkOrText details
formatAmount
func(bn *v0.Bounty, amount int64) string- OID
- 022746…dbba:76
formatAmount details
escrowSummary
func() string- OID
- 022746…dbba:77
escrowSummary details
decimal
func(amount int64, decimals int) string- OID
- 022746…dbba:78
decimal details
bps
func(v int64) string- OID
- 022746…dbba:79
bps details
idStr
func(bn *v0.Bounty) string- OID
- 022746…dbba:80
idStr details
boardLink
func(status string, tag string, page int) string- OID
- 022746…dbba:81
boardLink details
splitQuery
func(path string) (string, url.Values)- OID
- 022746…dbba:82
splitQuery details
pageOf
func(q url.Values) int- OID
- 022746…dbba:83
pageOf details
notFound
func() string- OID
- 022746…dbba:84