Skip to content

Centralize Plutus target metadata and split script purpose from type#37

Merged
satran004 merged 1 commit into
mainfrom
refactor/hardcoded_plutusv3
May 22, 2026
Merged

Centralize Plutus target metadata and split script purpose from type#37
satran004 merged 1 commit into
mainfrom
refactor/hardcoded_plutusv3

Conversation

@satran004

Copy link
Copy Markdown
Member

Description

This PR keeps JuLC’s compiler output V3-only, but removes scattered hardcoded V3 metadata and separates script language type from validator purpose.

Changes:

  • Adds PlutusTarget.CURRENT as the single source of truth for compiler target metadata:

    • language version: v3
    • text envelope type: PlutusScriptV3
    • UPLC program version: 1.1.0
  • Replaces direct Program.plutusV3(...) compiler output construction with PlutusTarget.CURRENT.program(...).

  • Removes output-formatting responsibility from JavaSourceIntrospector.

  • Adds ScriptPurposeMetadata for purpose formatting.

  • Changes generated validator JSON from combined type strings like:

    • PlutusScriptV3-Minting

    to:

    • type: PlutusScriptV3
    • purpose: minting
  • Preserves backward compatibility when reading old JSON files with legacy combined type strings.

  • Updates Gradle plugin, annotation processor, CLI blueprint conversion, and blueprint generation to use the centralized target metadata.

  • Updates architecture docs to clarify:

    • JuLC compiler output targets V3.
    • VM evaluation can still handle V1/V2/V3 external scripts.

@satran004 satran004 merged commit 73b0d56 into main May 22, 2026
1 check passed
@satran004 satran004 deleted the refactor/hardcoded_plutusv3 branch May 22, 2026 13:33
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant