{"library":"runar-compiler","title":"Rúnar Compiler","description":"Rúnar reference compiler (TypeScript to Bitcoin Script) via a 6-pass nanopass pipeline. Version 0.4.6, actively developed. Key differentiators: supports multiple front-end languages (TypeScript, Solidity-like, Move-style, Python) via file extension dispatch; never throws, all errors returned as diagnostics; exports ANF IR and full artifact. Currently in beta.","language":"javascript","status":"active","last_verified":"Fri May 01","install":{"commands":["npm install runar-compiler"],"cli":{"name":"runar","version":null}},"imports":["import { compile } from 'runar-compiler'","import type { CompileResult } from 'runar-compiler'","import type { CompileOptions } from 'runar-compiler'","import type { CompilerDiagnostic } from 'runar-compiler'","import type { Severity } from 'runar-compiler'"],"auth":{"required":false,"env_vars":[]},"quickstart":{"code":"import { compile } from 'runar-compiler';\n\nconst source = `\nimport { SmartContract, assert, PubKey, Sig, hash160, checkSig } from 'runar-lang';\n\nexport class P2PKH extends SmartContract {\n  readonly pubKeyHash: ByteString;\n\n  constructor(pubKeyHash: ByteString) {\n    super(pubKeyHash);\n    this.pubKeyHash = pubKeyHash;\n  }\n\n  public unlock(sig: Sig, pubKey: PubKey) {\n    assert(hash160(pubKey) === this.pubKeyHash);\n    assert(checkSig(sig, pubKey));\n  }\n}\n`;\n\nconst result = compile(source, { fileName: 'P2PKH.runar.ts' });\n\nconsole.log(result.success);\nconsole.log(result.scriptHex);\nconsole.log(result.scriptAsm);","lang":"typescript","description":"Compiles a P2PKH smart contract from TypeScript-like source to Bitcoin Script using the runar-compiler.","tag":null,"tag_description":null,"last_tested":null,"results":[]},"compatibility":null}