Files
gru_emoney_token-factory/CHANGELOG.md
defiQUG 651ff4f7eb Initial project setup: Add contracts, API definitions, tests, and documentation
- Add Foundry project configuration (foundry.toml, foundry.lock)
- Add Solidity contracts (TokenFactory138, BridgeVault138, ComplianceRegistry, etc.)
- Add API definitions (OpenAPI, GraphQL, gRPC, AsyncAPI)
- Add comprehensive test suite (unit, integration, fuzz, invariants)
- Add API services (REST, GraphQL, orchestrator, packet service)
- Add documentation (ISO20022 mapping, runbooks, adapter guides)
- Add development tools (RBC tool, Swagger UI, mock server)
- Update OpenZeppelin submodules to v5.0.0
2025-12-12 10:59:41 -08:00

2.8 KiB

Changelog

All notable changes to this project will be documented in this file.

The format is based on Keep a Changelog, and this project adheres to Semantic Versioning.

1.0.0 - 2024-12-12

Added

Core Contracts

  • ComplianceRegistry: Manages compliance status for accounts (allowed, frozen, risk tier, jurisdiction)
  • DebtRegistry: Manages liens (encumbrances) on accounts with hard expiry policy
  • PolicyManager: Central rule engine for transfer authorization across all tokens
  • eMoneyToken: Restricted ERC-20 token with policy-controlled transfers and lien enforcement
  • TokenFactory138: Factory for deploying new eMoneyToken instances as UUPS upgradeable proxies
  • BridgeVault138: Lock/unlock portal for cross-chain token representation

Features

  • Policy-controlled token transfers with multiple restriction layers
  • Two lien enforcement modes:
    • Hard Freeze: Blocks all outbound transfers when active lien exists
    • Encumbered: Allows transfers up to freeBalance = balance - activeLienAmount
  • Bridge-only mode for restricting transfers to bridge addresses
  • Callable/recallable functions: mint, burn, clawback, forceTransfer
  • UUPS upgradeable proxy pattern for token implementations
  • Role-based access control using OpenZeppelin's AccessControl

Testing

  • Comprehensive unit test suite (56 tests)
  • Integration tests for full system flow
  • Fuzz tests for DebtRegistry and transfer operations
  • Invariant tests for transfer logic and supply conservation

Documentation

  • README.md with project overview, installation, and usage
  • RUNBOOK.md with operational procedures
  • SECURITY.md with vulnerability disclosure policy
  • CONTRIBUTING.md with development guidelines
  • NatSpec documentation for all public/external functions

Deployment

  • Deploy.s.sol: Deployment script for all core contracts
  • Configure.s.sol: Post-deployment configuration script
  • VerifyDeployment.s.sol: Deployment verification script
  • EnvValidation.sol: Environment variable validation library
  • .env.example: Environment variable template

Infrastructure

  • Foundry configuration (foundry.toml)
  • OpenZeppelin Contracts v5 integration
  • Solidity 0.8.24 with IR-based code generation (via_ir)
  • Comprehensive .gitignore

Security

  • All privileged operations protected by role-based access control
  • Comprehensive input validation
  • Secure upgrade pattern (UUPS)
  • Hard expiry policy for liens (explicit release required)

Technical Details

  • ChainID 138 support
  • ERC-20 compatible with additional restrictions
  • Canonical reason codes for transfer blocking
  • Immutable registry addresses after deployment