All notable changes to the Disciplr Vault contract will be documented in this file.
The format is based on Keep a Changelog, and this project adheres to Semantic Versioning.
- Comprehensive NatSpec-style Rustdoc for all public contract methods in
src/lib.rs. - Detailed Checks-Effects-Interactions (CEI) pattern documentation in
vesting.md.
- Refactored
release_funds,redirect_funds, andcancel_vaultto strictly follow the Checks-Effects-Interactions (CEI) pattern, ensuring state updates occur before external token transfers. - Resolved merge conflicts and restructured the "Security and Trust Model" in
vesting.md.
- Sequential vault ID management using
VaultCountin persistent instance storage. - Idempotency guards (
require_active) torelease_funds,redirect_funds,cancel_vault, andvalidate_milestoneto prevent double-execution and ensure mutual exclusivity of terminal states. - Standardized error handling using
panic_with_error!and a dedicatedErrorenum.
- Fixed issue where
create_vaultalways returned a placeholder ID of 0.
- Initial USDC Token Integration in
create_vault. - Actual token transfers from creator to contract via
token_client.transfer. - Input validation for
amount(must be positive) andtimestamps(end > start). - Authorization enforcement via
creator.require_auth().
- Initial project structure for Disciplr Vault Soroban contract.
- Data models:
ProductivityVaultstruct andVaultStatusenum. - Function stubs:
create_vault,validate_milestone,release_funds,redirect_funds,cancel_vault,get_vault_state. - Basic unit test suite.