All notable changes to this project will be documented in this file.
The format is based on Common Changelog.
3.0.1 - 2025-10-14
- Bump package version for NPM release (#1297)
3.0.0 - 2025-10-07
- Breaking: Refactor
SablierLockupcontract into model-specific abstract contracts (#1261) - Refactor
DataTypesinto separate type files (#1261)DataTypesis kept for backward compatibility and will be deprecated in the future versions.
- Replace admin with comptroller (#1260, #1268)
- Rename
VestingMathlibrary toLockupMath - Rename
SablierLockupBasetoSablierLockupState(#1247) - Make
cancelMultiplenon-reverting (#1173) - Rename
aggregateBalancetoaggregateAmount(#1228) - Bump Solidity compiler to 0.8.29 (#1207)
- Bump
@openzeppelin/contractsfrom 5.0.2 to 5.3.0
- ERC20 recovery functionality (#1182)
- Function to calculate minimum fee in wei (#1270)
CreateBatchLockupevent inBatchLockup(#1274)- Return refunded amount in
cancel(#1173) - Add
@sablier/evm-utilsdependency
- Breaking: Remove
MAX_COUNTconstant (#1243) - Breaking: Remove broker functionality (#1166)
- Remove
AdminableandBatchcontracts (moved to@sablier/evm-utils)
2.0.1 - 2025-02-05
- Use relative path to import source contracts in test utils files (#1169)
- Remove
DeployOptimized.solfrom npm package (#1169)
2.0.0 - 2025-01-28
- Breaking: merge
SablierV2LockupLinear,SablierV2LockupDynamicandSablierV2LockupTranchedinto a single contract calledSablierLockup(#1069)- Implement two public libraries
VestingMathandHelpers - Implement
Modelenum to differentiate between linear, dynamic and tranched streams
- Implement two public libraries
- Allow setting the end time of linear streams to a past date (#1015)
- Emit revert errors in
withdrawMultipleinstead of halting execution on failed withdrawals (#1101) - Allow approved accounts to execute
withdrawMaxAndTranferon behalf of recipients (#1054) - Refactor
assettotokenwhen referring toERC20tokens (#1097) - Rename this repo to Lockup (#994)
- Breaking: introduce new configurations for unlock amounts at start time and cliff time in create Linear functions (#1075)
- Implement a
batchfunction to execute multiple functions in a single transaction (#1070, #1126) - Emit the expected shape name of the stream through create functions (#1094, #1100)
- Implement
renounceMultiplefunction to renounce multiple streams in a single transaction (#1091) - Moved the
SablierBatchLockupcontract from v2-periphery to the Lockup repository (#1084) - Add
payablemodifier to all the functions (#1093)
- No longer support backward compatibility with previous versions of
Lockupcontract inNFTDescriptor(#1113) - Remove
V2from the contract names and related references (#994) - Remove
precompilesfrom the NPM release (#1158)
1.2.0 - 2024-07-04
- Breaking: move common logic into
Lockupcontract (#784, #813, #850, #941) - Breaking: use a new hook system (#951)
- Replace
ISablierV2RecipientwithISablierLockupRecipienthook interface - Remove
try..catchblock from hook calls
- Replace
- Allow only supported characters in NFT Descriptor asset symbols (#945, #960, #949)
- Bump build dependencies (#806, #942, #944)
- Change permissions of
withdrawfunction to public (#785) - Disallow zero
startTime(#813, #852) - Rename create functions
createWithTimestampsandcreateWithDurationsacross all lockup contracts (#798) - Rename
milestonetotimestampin theLockupDynamic.Segmentdata type - Switch to Bun (#775)
- Use Solidity v0.8.26 (#944)
- Add Lockup Tranched contract (#817)
- Add
precompilesin the NPM release (#841) - Add return value in
withdrawMaxandwithdrawMaxAndTransfer(#961)
- Breaking: remove protocol fee (#839)
- Remove flash loan abstract contract (#779)
- Remove
tofromwithdrawMultiplefunction (#785)
1.1.2 - 2023-12-19
- Use Solidity v0.8.23 (#758)
1.1.1 - 2023-12-16
- Bump package version for NPM release (88db61)
1.1.0 - 2023-12-15
- Breaking: Remove ability to cancel for recipients (#710)
- Move
isWarmandisColdtoSablierV2Lockup(#664) - Replace the streamed amount with the deposit amount in the NFT descriptor (#692)
- Simplify
renounceandwithdrawimplementations (#683, #705) - Update import paths to use Node.js dependencies (#734)
- Use Solidity v0.8.21 (#688)
- Remove
@openzeppelin/contractsfrom Node.js peer dependencies (#694)
1.0.2 - 2023-08-14
- Update
@prb/mathimport paths to containsrc/(#648)
1.0.1 - 2023-07-13
- Optimize use of variables in
tokenURI(#617)
- Fix data URI scheme in
tokenURI(#617)
1.0.0 - 2023-07-07
- Initial release