Skip to content

Releases: evmauth/evmauth-core

v0.3.1

25 Sep 13:59
54a99e3

Choose a tag to compare

What's Changed

  • fix: ensure balance in underlying token standard contract is updated when pruning by @sscovil in #39

Full Changelog: v0.3.0...v0.3.1

v0.3.0

11 Sep 15:54
31cfdba

Choose a tag to compare

Major Architecture Redesign

This release introduces a complete rewrite of EVMAuth with modular architecture, dual token standard support, and enterprise-ready features for authorization state management.

Key Features

Dual Token Standard Support

  • EVMAuth1155: Full ERC-1155 compliance with batch operations, URI-based metadata, and receiver hooks
  • EVMAuth6909: ERC-6909 compliance offering simpler transfers, granular approvals, and on-chain metadata

Core Improvements

Token Management

  • Sequential token IDs starting at 1, assigned automatically via createToken(EVMAuthTokenConfig config)
  • Unified configuration with updateToken(uint256 id, EVMAuthTokenConfig config)
  • Non-transferable tokens option for things like licenses and identity tokens
  • Time-to-live (TTL) for automatic token expiration

Payment System

  • Multiple payment methods per token:
    • Native currency (ETH, POL, etc.)
    • Multiple ERC-20 tokens with independent pricing
    • Set price to 0 to disable specific payment methods
  • Treasury management for collecting purchase revenue
  • Reentrancy protection on all purchase functions

Contract Infrastructure

  • Upgradeable by default using OpenZeppelin's UUPSUpgradeable pattern
  • ERC-7201 namespaced storage for upgrade safety
  • Modular base contracts for clean separation of concerns
  • Pausable operations for emergency situations

Token Expiration & Cleanup

  • Improved expired token cleanup with efficient time-bucket system
  • Public pruneBalanceRecords(address account, uint256 id) for manual cleanup
  • Automatic pruning during transfers and balance checks
  • Bounded balance records to prevent gas issues

Updated Roles

  • TOKEN_MANAGER_ROLE: Configure tokens and metadata
  • ACCESS_MANAGER_ROLE: Pause/unpause and freeze/unfreeze accounts
  • TREASURER_ROLE: Update treasury address
  • MINTER_ROLE: Issue tokens programmatically
  • BURNER_ROLE: Burn tokens from accounts
  • UPGRADE_MANAGER_ROLE: Authorize contract upgrades

Documentation & Testing

  • Comprehensive architectural diagrams
  • Detailed deployment guides
  • Cast command cheat sheet
  • Significantly improved test coverage
  • Auto-generated documentation

Migration Notes

Breaking Changes

  • Complete contract redeployment required (not upgradeable from v0.2.x)
  • New initialization pattern replaces constructor
  • Role names and permissions restructured
  • Blacklist functionality replaced with account freezing

v0.2.3

08 Aug 15:59
72e436e

Choose a tag to compare

⚠️ This release contains an important security update. See #18 for details.

Security

  • fix: ERC-1155 token balance sync with expiring token group balances by @sscovil in #19

Full Changelog: v0.2.2...v0.2.3

v0.2.2

07 Aug 19:41
b194dee

Choose a tag to compare

Changed

Fixed

  • fix: Bug preventing burn and burnBatch methods from working by @sscovil in #17

New Contributors

Full Changelog: v0.2.1...v0.2.2

v0.2.1

21 May 15:58
8645d58

Choose a tag to compare

Changed

  • feat: do not use erc2470 to deploy by default; make it optional instead by @sscovil in #10

Full Changelog: v0.2.0...v0.2.1

v0.2.0

10 May 18:54
9db79d9

Choose a tag to compare

Changed

  • feat: Add token ID to TokenMetadata struct by @sscovil in #2

Full Changelog: v0.1.0...v0.2.0

v0.1.0

08 May 17:55
d61e244

Choose a tag to compare