// SPDX-License-Identifier: UNLICENSED pragma solidity ^0.8.24; import {Currency} from "../types/Currency.sol"; import {IUnlockCallback} from "../interfaces/callback/IUnlockCallback.sol"; import {IPoolManager} from "../interfaces/IPoolManager.sol"; import {StateLibrary} from "../libraries/StateLibrary.sol"; import {TransientStateLibrary} from "../libraries/TransientStateLibrary.sol"; abstract contract PoolTestBase is IUnlockCallback { using StateLibrary for IPoolManager; using TransientStateLibrary for IPoolManager; IPoolManager public immutable manager; constructor(IPoolManager _manager) { manager = _manager; } function _fetchBalances(Currency currency, address user, address deltaHolder) internal view returns (uint256 userBalance, uint256 poolBalance, int256 delta) { userBalance = currency.balanceOf(user); poolBalance = currency.balanceOf(address(manager)); delta = manager.currencyDelta(deltaHolder, currency); } }