Skip to content

Latest commit

 

History

History
86 lines (65 loc) · 2.34 KB

File metadata and controls

86 lines (65 loc) · 2.34 KB

EVMcrispr

A domain-specific language for encoding and executing batched EVM transactions targeting smart contracts, Aragon DAOs, ENS, and DeFi protocols.

Quick Start

# Install dependencies
bun install

# Start the web terminal
bun dev:terminal

# Start the docs website
bun dev:website

Visit evmcrispr.com to use the hosted terminal.

Example Script

# Approve and swap tokens in a single transaction
load sim

sim:fork (
  set $router 0x7a250d5630B4cF539739dF2C5dAcb4c659F2488D
  set $amount @token.amount(DAI 100)

  batch (
    exec @token(DAI) "approve(address,uint256)" $router $amount
    exec $router "swapExactTokensForETH(uint256,uint256,address[],address,uint256)" $amount 0 [@token(DAI) @token(WETH)] @me @date("2025-12-31")
  )

  sim:expect @bool(@get(@token(WETH) "balanceOf(address)(uint256)" @me) > 0)
)

Modules

Module Description Commands Helpers
std Core language (always loaded) 13 55
aragonos Aragon DAO operations 9 3
sim Chain fork simulation 6 -
ens ENS domain operations 1 1
giveth Giveth protocol 4 1
http HTTP + JSON - 3

Project Structure

packages/
  core/          Parser, interpreter, AST
  sdk/           Module SDK (defineCommand, defineHelper)
modules/
  std/           Default module — always loaded
  aragonos/      Aragon DAO operations
  sim/           Chain fork simulation
  ens/           ENS domain operations
  giveth/        Giveth protocol
  http/          HTTP + JSON helpers
apps/
  evmcrispr-terminal/   React + Monaco web terminal
  evmcrispr-website/    Astro landing page + docs

Development

bun install           # Install dependencies
bun run build         # Build all packages
bun test:unit         # Run unit tests
bun test:integration  # Run integration tests (needs anvil)
biome check .         # Lint

Documentation

License

GPL-3.0