Skip to content

SundaeSwap-finance/gastronomy

Repository files navigation

Gastronomy UPLC Debugger

Smart contracts on Cardano tend to be very small, so this UPLC Debugger stores the state of the machine at every step of execution; giving the ability to then step forward and backward with ease, and present a nice user interface for doing so.

Quick Start

CLI tool:

gastronomy-cli run test_data/fibonacci.uplc 03
  • N - Advance to the next step
  • P - Rewind to the previous step
  • Q - Quit

GUI:

gastronomy

Configuration.

The app will read configuration from environment variables, or from a .gastronomyrc.toml file in your home directory.

Setting Environment variable Description
blockfrost.key BLOCKFROST_KEY The API key to use when querying Blockfrost.

Features

Below you will find the planned and completed features for the Gastronomy debugger:

  • Loading and Evaluating UPLC Programs
    • Loading flat encoded UPLC programs
    • Loading UPLC pretty printed programs
    • Passing hex encoded arguments
    • Spent and single-step budgets
    • Loading transactions with a script context
    • Better command line arguments
  • Step through debugging
    • Step forward
    • Display current term
    • Display current context
    • Display current environment
    • Display return values
    • Relabel variables
    • Speculative execution with a changed environment
    • Place bookmarks for easy navigation
  • Time-travel Debugging
    • Step backwards
    • Step to where environment variable introduced
    • Step backwards through context stack
    • Step forwards through context stack
  • Graphical interface
    • Desktop application
    • Custom renderers for some terms
    • Better "cause and effect" visualization
    • Budget heat-map
  • Sourcemap integration
    • Aiken integration
    • Plu-ts integration