2025-03-04 09:36:00 +01:00

24 lines
541 B
Solidity

// SPDX-License-Identifier: MIT
pragma solidity 0.8.28;
import "./Timestamps.sol";
import "./TokensPerSecond.sol";
struct Flow {
TokensPerSecond rate;
Timestamp updated;
}
library Flows {
function _totalAt(
Flow memory flow,
Timestamp timestamp
) internal pure returns (int128) {
int128 rate = TokensPerSecond.unwrap(flow.rate);
Timestamp start = flow.updated;
Timestamp end = timestamp;
uint64 duration = Timestamp.unwrap(end) - Timestamp.unwrap(start);
return rate * int128(uint128(duration));
}
}