const StateOpen, StateSettled, StateCanceled
State constants for a deal's lifecycle.
⚠️ Experimental — generated with no human supervision. This realm was produced automatically by an MCP-driven agent to exercise the gno MCP server and tooling, and to generate test content for gno compilers, linters and formatters. Not audited. Not for production. Full context & folder README: r/moul/x/daily
A minimal 2-party escrow realm for gno.land (a port of the classic Solidity escrow idea, accounting only — no funds move). One party opens a deal against a counterparty with free-form terms; both parties confirm to settle it, and the creator can cancel any deal that is still open.
Realm path: gno.land/r/REPLACE_ADDR/escrow
# Alice opens a deal with Bob; returns the new deal id (e.g. 0)
Create(g1bob..., "swap NFT for 100 GNOT")
# Each party confirms; when both have confirmed, the deal becomes "Settled"
Confirm(0) # called by Alice
Confirm(0) # called by Bob -> Settled
# The creator may cancel while the deal is still Open
Cancel(0) # called by Alice
/ — table of all deals: id, parties, state, confirmations, terms./<id> — details for a single deal (e.g. /0).Part of moul/gno-contracts — moul's versioned gno.land contracts. See the repository for the full catalog, build/test tooling, and usage.
Dependency graph:

🧪 Highly experimental — potentially vibe-coded. Not audited; may break, change, or be removed at any time. Do not use with anything of value. Full disclaimer: DISCLAIMER.
Cancel voids an open deal. Only the creator may cancel, and only before the deal has settled.
Confirm records confirmation by whichever party is calling. Once both parties have confirmed, the deal transitions to Settled.
Create opens a new escrow deal between the caller (creator) and the given counterparty, governed by a free-form terms string. Returns the new deal id. Panics on invalid input (cross-realm abort).
Render lists all escrow deals with their parties, terms, and state. When path is a numeric id, renders just that deal.