- 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
2.8 KiB
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