Spells reference

resolve-market.yaml


# =============================================================================
# RESOLVE MARKET SPELL
# =============================================================================
# Resolves the market with a specific outcome
# Requires a valid resolution proof (signature or cross-chain)
#
# Resolution can only occur after resolution_deadline has passed.
# The resolver signs: SHA256(market_id || outcome_serialized)
#
# Usage:
#   export outcome=Yes  # or "No" or "Invalid"
#   export current_timestamp=$(date +%s)
#   export resolution_timestamp=${current_timestamp}
#   # Generate signature over SHA256(market_id || outcome)
#   cat resolve-market.yaml | envsubst | charms spell check --app-bins=${app_bin}
# =============================================================================

version: 8

apps:
  $00: n/${market_id}/${app_vk}

public_inputs:
  $00:
    Resolve:
      outcome: ${outcome}
      proof:
        SignedAttestation:
          resolver_pubkey: ${resolver_pubkey}
          signature: ${resolution_signature}
      current_timestamp: ${current_timestamp}

ins:
  - utxo_id: ${market_utxo_id}
    charms:
      $00:
        market_id: ${market_id}
        question_hash: ${question_hash}
        params:
          trading_deadline: ${trading_deadline}
          resolution_deadline: ${resolution_deadline}
          fee_bps: ${fee_bps}
          min_bet: ${min_bet}
        status: ${current_status}
        resolution: null
        yes_supply: ${yes_supply}
        no_supply: ${no_supply}
        max_supply: ${max_supply}
        fees: ${accumulated_fees}
        creator: ${creator_pubkey}

outs:
  - address: ${addr_market}
    charms:
      $00:
        market_id: ${market_id}
        question_hash: ${question_hash}
        params:
          trading_deadline: ${trading_deadline}
          resolution_deadline: ${resolution_deadline}
          fee_bps: ${fee_bps}
          min_bet: ${min_bet}
        status: Resolved
        resolution:
          outcome: ${outcome}
          proof:
            SignedAttestation:
              resolver_pubkey: ${resolver_pubkey}
              signature: ${resolution_signature}
          timestamp: ${resolution_timestamp}
        yes_supply: ${yes_supply}
        no_supply: ${no_supply}
        max_supply: ${max_supply}
        fees: ${accumulated_fees}
        creator: ${creator_pubkey}
Previous
trade.yaml