# Changelog

#### 2.7.0 (5/11/2025, a215d3f)

* Added an emergency withdraw functionality that allows project owners to withdraw permanently deposited tokens using a pseudo-multisig mechanism with Team TokenTable
* Added default fee and fee token in FeeCollector
* Fixed a validation bug for presets in Unlocker
* Fixed an issue with delegate.xyz
* Fixed issues in TrackerToken
* Fixed fee calculation logic when the claim amount is 0
* Updated CustomERC2771Context's base class
* Optimized precision calculation in `Unlocker::simulateAmountClaimable`
* Replaced `FutureToken::getClaimInfo`

#### 2.6.1 (3/3/2025, 71cc316)

* Added TTUMulticallDeployer contract for batch deployment functionality
* Fixed bug in deployer that forced FutureTokens to be untransferable when the instance was deployed as a clone

#### 2.6.0 (12/27/2024, 4b6f605)

* Added support for external NFT as FutureToken (experimental)
* Added delegate.xyz support to manage delegate claims
* Added distinctive versioning to all extensions
* Added ETH support in FeeCollector
* Fixed issues in the subgraph that would lead to a crash
* Fixed issues in the deployer
* Fixed an issue in Unlocker that prevented upgrades
* Removed deprecated and mock source files

#### 2.5.7 (2/14/2024, 1422afd)

* Fixed various edge case findings from the Nethermind audit of Cairo TokenTable.

#### 2.5.6 (1/26/2024, 3aede9e)

* Optimized `ITTHook` interface.
* Added `isCreateable` to fix a loophole that allowed founders to drain the pool even when `isCancelable` and `isWithdrawable` are false.
* Allow multiple claim delegates instead of just one.

#### 2.5.5 (12/29/2023, a112d20)

* Refactored storage to be upgrade-safe namespaced.
* Fixed an issue that allowed recipients to bypass skipped amounts.
* Revised use of `PresetDoesNotExist` error.
* Revised selector syntax to improve consistency.
* Optimized various variable initialization.
* Added support for using native tokens with the Unlocker.

#### 2.5.4 (12/26/2023, 28f1a51)

* Added `bytes memory extraData` to all functions.

#### 2.5.3 (12/22/2023, cad7f0e)

* `simulateAmountClaimable` now returns 0 instead of reverting under certain conditions.
* `calculateAmountClaimable` now checks if the `actualId` that's passed in exists.
* Fixed instances where `msg.data` instead of `_msgData()` is used.

#### 2.5.2 (12/21/2023, f5ed369)

* Added `recipientIds` to `createActuals` function and `ActualCreated` event.

#### 2.5.1 (12/20/2023, 373e52a)

* Updated `ActualCreated` event.

#### 2.5.0 (12/19/2023, b7a0171)

* Switched to a shared token pool for all Actuals instead of an individual pool for each Actual.
* Fixed an issue when calculating claimables.
* Added an option for the founder to perform a complete cancellation.
* Added delegate claim.
* Added `simulateAmountClaimable`.
