{ "contract": "escrow", "version": "1.0.0", "description": "Two-party trustless escrow. Buyer deposits funds into the contract treasury. Seller delivers; buyer releases. If disputed, the contract admin resolves.", "methods": [ { "name": "init", "description": "Set the caller as the escrow admin. Call once after deployment.", "args": [] }, { "name": "create", "description": "Buyer creates an escrow. Transfers amount from buyer to treasury. Logs 'created: '.", "args": [ {"name": "id", "type": "string", "description": "Unique escrow ID (user-supplied)"}, {"name": "seller", "type": "string", "description": "Seller address (hex pubkey)"}, {"name": "amount", "type": "uint64", "description": "Amount in µT to lock in escrow"} ] }, { "name": "release", "description": "Buyer releases funds to seller. Transfers treasury → seller. Logs 'released: '.", "args": [ {"name": "id", "type": "string", "description": "Escrow ID"} ] }, { "name": "refund", "description": "Seller refunds the buyer (voluntary). Transfers treasury → buyer. Logs 'refunded: '.", "args": [ {"name": "id", "type": "string", "description": "Escrow ID"} ] }, { "name": "dispute", "description": "Buyer or seller raises a dispute. Logs 'disputed: '. Admin must then call resolve.", "args": [ {"name": "id", "type": "string", "description": "Escrow ID"} ] }, { "name": "resolve", "description": "Admin resolves a disputed escrow. winner must be 'buyer' or 'seller'. Logs 'resolved: '.", "args": [ {"name": "id", "type": "string", "description": "Escrow ID"}, {"name": "winner", "type": "string", "description": "'buyer' or 'seller'"} ] }, { "name": "info", "description": "Log escrow details: buyer, seller, amount, status.", "args": [ {"name": "id", "type": "string", "description": "Escrow ID"} ] } ] }