Skip to content

1.5.0

Choose a tag to compare

@chase-mew chase-mew released this 13 Mar 14:22
· 152 commits to main since this release

What's Changed

  • Support conditional (ternary) expressions in state variable initializers by @Copilot in #222
  • Docs: Add missing --no-install flag and exit codes to CLI reference by @Copilot in #223
  • Add AccessControl (role-based) contract to standard library by @Copilot in #224
  • docs: improve self/address(this) documentation clarity by @Copilot in #229
  • Support string.replace() and string.replaceAll() methods by @Copilot in #225
  • Support interface property getters for external contract view calls by @Copilot in #227
  • Support 'is' type guards for enum and type narrowing by @Copilot in #233
  • Add ERC20Permit and ERC20Votes to standard library by @Copilot in #228
  • Support tuple destructuring from function return values by @Copilot in #231
  • Support array.sort() with comparator function by @Copilot in #226
  • Support address.balance for reading ETH balance by @Copilot in #230
  • Support string interpolation with non-string expressions in template literals by @Copilot in #232
  • Fix mutability inference for msg.sender in custom error throw arguments by @Copilot in #236
  • Exclude address literals from string comparison keccak256 optimization by @Copilot in #238
  • Fix super.method() call incorrectly marked as pure instead of state-modifying by @Copilot in #237
  • Fix string truthiness in if-conditions to generate valid Solidity by @Copilot in #235
  • Generate Solidity overloads for functions with default parameter values by @Copilot in #234
  • Refactor: Split parser.ts (4,800+ lines) into smaller focused modules by @Copilot in #279
  • Refactor: Merge two import statements from types/index.ts in compiler.ts [XS] by @chase-manning in #280
  • Cleanup: webapp fetch error for npm version is silently swallowed [XS] by @chase-manning in #281
  • Cleanup: analysis.ts walkNestedBlocks has redundant while/do-while cases [XS] by @chase-manning in #282
  • Cleanup: Use SkittlesTypeKind enum instead of string casts in parser.ts [S] by @chase-manning in #283
  • Cleanup: Webapp Playground error handling and accessibility improvements [S] by @chase-manning in #284
  • Cleanup: Empty catch blocks swallow errors silently in compiler.ts [S] by @chase-manning in #286
  • Cleanup: Regex /extends\s+(\w+)/g duplicated in compiler.ts and resolver.ts [XS] by @chase-manning in #289
  • Cleanup: Deep relative imports in webapp/src/compiler.ts [XS] by @chase-manning in #288
  • Cleanup: Hardcoded external URLs in webapp should be centralized [XS] by @chase-manning in #287
  • Cleanup: isSuperCall and getSuperCallArgs duplicate the same condition in codegen.ts [XS] by @chase-manning in #285
  • Cleanup: Remove non-null assertions and add proper null checks [S] by @chase-manning in #290
  • Cleanup: Split types/index.ts by domain (config, IR, expressions) [S] by @chase-manning in #291
  • Cleanup: Add ESLint and Prettier configuration to repo root [S] by @chase-manning in #293
  • Cleanup: Invalidate stdlib registry cache in resolver.ts [XS] by @chase-manning in #292
  • Cleanup: Inconsistent behavioral test patterns (connectAs, destructuring, tx style) [S] by @chase-manning in #294
  • Refactor: Extract duplicated syntax highlighting into shared module in webapp [S] by @chase-manning in #295
  • Cleanup: Replace hardcoded colors with CSS custom properties in webapp [M] by @chase-manning in #297
  • Cleanup: Fix CSS color typo and duplicated variable definitions in docs [S] by @chase-manning in #296
  • Refactor: Split App.tsx (468 lines) into separate page section components [M] by @chase-manning in #298
  • Cleanup: Add Indexed to Pausable event parameters for consistency [XS] by @chase-manning in #299
  • Cleanup: defaultConfig duplicated in cache.test.ts vs fixtures.ts [XS] by @chase-manning in #300
  • Refactor: Extract shared test utilities for temp dirs, event parsing, and env setup [M] by @chase-manning in #301
  • Refactor: Split integration.test.ts (6,700+ lines) into focused test files [L] by @chase-manning in #303
  • Cleanup: Centralize shared test constants (ZERO_ADDRESS, MAX_UINT256, INITIAL_SUPPLY, timeouts) [S] by @chase-manning in #302
  • Cleanup: DRY violation between compileCommand and runCompilation in compile.ts [S] by @chase-manning in #304
  • Cleanup: Use named constants for ReentrancyGuard status values [XS] by @chase-manning in #305
  • Cleanup: Add error handling to cleanCommand and CLI entry point [XS] by @chase-manning in #307
  • Cleanup: Add config validation in loadConfig [S] by @chase-manning in #308
  • Cleanup: Define shared ZERO_ADDRESS constant in stdlib [S] by @chase-manning in #306
  • Refactor: Split initCommand into smaller functions and remove DRY violations [M] by @chase-manning in #309
  • Cleanup: Duplicate utility functions in codegen.ts (getFunctionKey, hasAncestorOrigin) [S] by @chase-manning in #310
  • Cleanup: Add explicit error handling for unknown expression/statement kinds in codegen [S] by @chase-manning in #312
  • Cleanup: Replace magic numbers and strings in compiler with named constants [S] by @chase-manning in #311
  • Refactor: Break up compile() function in compiler.ts (368 lines) [L] by @chase-manning in #314
  • Refactor: Split generateContractBody() in codegen.ts (468 lines) [M] by @chase-manning in #315
  • Refactor: Extract shared AST walking utilities from parser, analysis, and compiler [M] by @chase-manning in #316
  • Refactor: Replace module-level mutable state with context objects in compiler [L] by @chase-manning in #313
  • Refactor: Consolidate compileSolidity and compileSolidityBatch in solc.ts [S] by @chase-manning in #317
  • Support TypeScript private class fields (#field syntax) by @chase-manning in #318
  • Add error recovery: report multiple compilation errors instead of stopping at first by @chase-manning in #319
  • Support Solidity NatSpec comments from TypeScript JSDoc comments by @chase-manning in #320
  • Add Solidity output formatting/pretty-printing options by @chase-manning in #321

Full Changelog: v1.4.1...v1.5.0