admin
.uverse.addressValue
<gnolang.StringValue>
feeFallback
.uverse.addressValue
<gnolang.StringValue>
pendingAdmin
.uverse.addressValue
<zero>
TransferOwnership
func(newAdmin .uverse.address)TransferOwnership stages a handoff to newAdmin. Admin only. The transfer does not take effect until newAdmin calls AcceptOwnership, so admin is never moved to an address that has not demonstrated it can transact. Calling it again before acceptance replaces the staged address, which is how a mistyped proposal is corrected.
- OID
- 0d677d…f56e:6
TransferOwnership details
AcceptOwnership
func()AcceptOwnership completes the handoff. Only the staged pendingAdmin may call it — including against the outgoing admin, so the two steps cannot be collapsed into one by the party giving up the role.
- OID
- 0d677d…f56e:8
AcceptOwnership details
CancelOwnershipTransfer
func()CancelOwnershipTransfer clears a staged handoff. Admin only — the outgoing admin must be able to abort a proposal it no longer wants, without needing the proposed address to cooperate.
- OID
- 0d677d…f56e:9
CancelOwnershipTransfer details
GetAdmin
func() stringGetAdmin returns the address that currently holds admin.
- OID
- 0d677d…f56e:10
GetAdmin details
GetPendingAdmin
func() stringGetPendingAdmin returns the staged successor ("" when none is in flight).
- OID
- 0d677d…f56e:11
GetPendingAdmin details
assertAdmin
func()assertAdmin is the authorization gate for this file's entrypoints. It rejects a stale/sibling \`cur\` first, then takes the caller from cur.Previous().
- OID
- 0d677d…f56e:12
assertAdmin details
laneService
untyped stringlaneService is this engine's lane key into the DAO fee spine (memba\_market\_config). Seeded there at 200 bps (2.0%) — see memba\_market\_config/config.gno's init(), which explicitly documents "service" as escrow's release fee lane.
Value
"service"
PlatformFeePct
untyped bigint// 2% fallback only
Value
(2 <untyped> bigint)
CancelFeePct
untyped bigint// 5% cancellation fee — escrow-internal, NOT on the fee spine
Value
(5 <untyped> bigint)
AutoRefundBlks
int64// ~30 days at 3s/block
Value
864000
AutoResolveBlks
int64// ~28 days at 3s/block
Value
806400
MaxTitleLen
untyped bigintValue
(200 <untyped> bigint)
MaxDescLen
untyped bigintValue
(5000 <untyped> bigint)
MaxMilestones
untyped bigintValue
(20 <untyped> bigint)
MaxContracts
untyped bigintValue
(500 <untyped> bigint)
MinMilestoneAmount
int64// 0.001 GNOT — prevents fee evasion via truncation
Value
1000
ContractStatus
typeValue
escrow_v3.ContractStatus
StatusActive
escrow_v3.ContractStatusValue
<gnolang.StringValue>
StatusCompleted
escrow_v3.ContractStatusValue
<gnolang.StringValue>
StatusDisputed
escrow_v3.ContractStatusValue
<gnolang.StringValue>
StatusCancelled
escrow_v3.ContractStatusValue
<gnolang.StringValue>
MilestoneStatus
typeValue
escrow_v3.MilestoneStatus
MsPending
escrow_v3.MilestoneStatusValue
<gnolang.StringValue>
MsFunded
escrow_v3.MilestoneStatusValue
<gnolang.StringValue>
MsCompleted
escrow_v3.MilestoneStatusValue
<gnolang.StringValue>
MsReleased
escrow_v3.MilestoneStatusValue
<gnolang.StringValue>
MsDisputed
escrow_v3.MilestoneStatusValue
<gnolang.StringValue>
MsRefunded
escrow_v3.MilestoneStatusValue
<gnolang.StringValue>
Contract
typeValue
escrow_v3.Contract
Milestone
typeValue
escrow_v3.Milestone
contracts
*avl.Tree// id -> \*Contract
- OID
- 0d677d…f56e:54
contracts details
nextID
intValue
0
paused
boolValue
false
totalLiable
int64// NF-2: ugnot owed to funded/disputed milestones — see getters.gno
Value
0
init.37
func()- OID
- 0d677d…f56e:17
init.37 details
resolveFee
func() (int64, .uverse.address)- OID
- 0d677d…f56e:19
resolveFee details
assertNotPaused
func()- OID
- 0d677d…f56e:20
assertNotPaused details
Pause
func()Pause halts all write operations. Admin only.
- OID
- 0d677d…f56e:21
Pause details
Unpause
func()Unpause resumes normal operations. Admin only.
- OID
- 0d677d…f56e:22
Unpause details
IsPaused
func() boolIsPaused returns the current pause state.
- OID
- 0d677d…f56e:23
IsPaused details
CreateContract
func(freelancer .uverse.address, title string, description string, milestones string) stringCreateContract creates a new escrow contract with milestones. Milestones format: "title1:amount1,title2:amount2"
- OID
- 0d677d…f56e:24
CreateContract details
FundMilestone
func(contractId string, milestoneIdx int)FundMilestone deposits funds for a specific milestone. Client only.
- OID
- 0d677d…f56e:25
FundMilestone details
CompleteMilestone
func(contractId string, milestoneIdx int)CompleteMilestone marks a milestone as completed. Freelancer only.
- OID
- 0d677d…f56e:26
CompleteMilestone details
ReleaseFunds
func(contractId string, milestoneIdx int)ReleaseFunds releases funds to freelancer after client approves. Client or Admin.
- OID
- 0d677d…f56e:27
ReleaseFunds details
RaiseDispute
func(contractId string, milestoneIdx int)RaiseDispute escalates a milestone to admin arbitration. Client or Freelancer.
- OID
- 0d677d…f56e:28
RaiseDispute details
ResolveDispute
func(contractId string, milestoneIdx int, refundClient bool)ResolveDispute resolves a dispute. Admin only. refundClient=true refunds to client, false pays freelancer.
- OID
- 0d677d…f56e:29
ResolveDispute details
CancelContract
func(contractId string)CancelContract cancels an active contract. Client only. Funded milestones are refunded minus cancellation fee.
- OID
- 0d677d…f56e:30
CancelContract details
ClaimRefund
func(contractId string, milestoneIdx int)ClaimRefund refunds a funded milestone that has timed out. Anyone can call — permissionless, prevents fund locking.
- OID
- 0d677d…f56e:31
ClaimRefund details
ClaimDisputeTimeout
func(contractId string, milestoneIdx int)ClaimDisputeTimeout auto-resolves a dispute that admin hasn't acted on after AutoResolveBlks (~28 days). Resolution follows the pre-dispute status: - If the milestone was MsCompleted (freelancer delivered work) before dispute, funds go to freelancer (minus platform fee). This prevents griefing where a client disputes after delivery and simply waits out the clock. - If the milestone was MsFunded (work not yet delivered) before dispute, funds are refunded to client. Anyone can call (permissionless safety valve).
- OID
- 0d677d…f56e:32
ClaimDisputeTimeout details
Render
func(path string) string- OID
- 0d677d…f56e:33
Render details
renderHome
func() string- OID
- 0d677d…f56e:34
renderHome details
renderContract
func(id string) string- OID
- 0d677d…f56e:35
renderContract details
renderStats
func() string- OID
- 0d677d…f56e:36
renderStats details
getContract
func(id string) *escrow_v3.Contract- OID
- 0d677d…f56e:37
getContract details
allMilestonesReleased
func(c *escrow_v3.Contract) bool- OID
- 0d677d…f56e:38
allMilestonesReleased details
allMilestonesTerminal
func(c *escrow_v3.Contract) boolallMilestonesTerminal returns true if every milestone is in a final state (released, refunded, or pending — pending with no funds is terminal).
- OID
- 0d677d…f56e:39
allMilestonesTerminal details
parseMilestones
func(input string) []escrow_v3.MilestoneparseMilestones parses "title1:amount1,title2:amount2" into Milestone slice. Invalid entries cause a panic (not silently skipped).
- OID
- 0d677d…f56e:40
parseMilestones details
truncAddr
func(addr .uverse.address) string- OID
- 0d677d…f56e:41
truncAddr details
sanitizeMilestoneTitle
func(s string) stringsanitizeMilestoneTitle strips markdown special characters to prevent injection in gnoweb Render output.
- OID
- 0d677d…f56e:42
sanitizeMilestoneTitle details
basisPointsFee
func(amount int64, bps int64) int64basisPointsFee computes floor(amount\*bps/10000) without overflowing the intermediate product. For nonnegative amount and bps \<= 10000, the quotient product and final sum are \<= amount; the remainder product is \< 100000000. Callers retain their existing configured rates, recipients and rounding.
- OID
- 0d677d…f56e:43
basisPointsFee details
TotalLiabilities
func() int64TotalLiabilities returns the total ugnot the realm owes across all funded and disputed milestones (funds that have arrived but not yet left the realm).
- OID
- 0d677d…f56e:45
TotalLiabilities details
RealmAddress
func() stringRealmAddress is the NF-2 canonical name for the realm's own address (the solvency monitor pairs it with TotalLiabilities).
- OID
- 0d677d…f56e:47
RealmAddress details
GovernanceMilestone
typeValue-only copies: no Contract pointer or persistent milestone slice escapes.
Value
escrow_v3.GovernanceMilestone
GovernanceContract
typeValue
escrow_v3.GovernanceContract
GetGovernanceContract
func(id string) escrow_v3.GovernanceContract- OID
- 0d677d…f56e:48
GetGovernanceContract details
GovernanceFeeTerms
typeValue
escrow_v3.GovernanceFeeTerms
GetGovernanceFeeTerms
func() escrow_v3.GovernanceFeeTerms- OID
- 0d677d…f56e:50
GetGovernanceFeeTerms details
escrowMetadataField
func(value string) string- OID
- 0d677d…f56e:51
escrowMetadataField details
publisherAtLoad
func() .uverse.address- OID
- 0d677d…f56e:52