aere-contracts/contracts/mocks/MockDebtMarketForFund.sol
Aere Network a13a649b77
Some checks are pending
contracts-ci / Install (lockfile) → compile → full test suite (push) Waiting to run
contracts-ci / PQC known-answer tests (NIST vectors) (push) Waiting to run
contracts-ci / Coverage (scoped, with artifacts) (push) Waiting to run
Initial public release
Aere Network public source. Everything here can be checked against the live
chain (chain id 2800, https://rpc.aere.network).

Scope note, stated up front rather than buried: consensus on chain 2800 is
classical secp256k1 ECDSA QBFT. The post-quantum work in this repository is at
the signature, precompile, account and transport layers. Nothing here makes the
consensus post-quantum, and no document in it should be read as claiming so.
2026-07-20 01:02:37 +03:00

39 lines
1.4 KiB
Solidity

// SPDX-License-Identifier: MIT
pragma solidity 0.8.23;
import "@openzeppelin/contracts/token/ERC20/IERC20.sol";
/// @notice Minimal market stub implementing AereInsuranceFund's
/// IAereLendingMarketForFund. Lets a test pin an EXACT debt balance so
/// the fund's clamp-then-cap ordering can be exercised at precise
/// boundaries, free of the per-second interest drift the real
/// AereLendingMarket introduces over the 7-day registration timelock.
contract MockDebtMarketForFund {
address public immutable debtToken;
mapping(address => uint256) public debt;
constructor(address _debtToken) {
debtToken = _debtToken;
}
function DEBT_TOKEN() external view returns (address) {
return debtToken;
}
function setDebt(address user, uint256 amount) external {
debt[user] = amount;
}
function debtBalance(address user) external view returns (uint256) {
return debt[user];
}
/// @notice Pulls `amount` of the debt token from the caller (the fund) and
/// reduces the stored debt, mirroring a real repay.
function repayOnBehalfOf(address account, uint256 amount) external {
require(IERC20(debtToken).transferFrom(msg.sender, address(this), amount), "pull failed");
uint256 d = debt[account];
debt[account] = amount >= d ? 0 : d - amount;
}
}