Skip to content
Draft
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
3 changes: 2 additions & 1 deletion src/position-manager/NativeTokenGateway.sol
Original file line number Diff line number Diff line change
Expand Up @@ -115,7 +115,8 @@ contract NativeTokenGateway is INativeTokenGateway, GatewayBase, ReentrancyGuard
address underlying = _getReserveUnderlying(spoke, reserveId);
_validateParams(underlying, amount);

uint256 userTotalDebt = ISpoke(spoke).getUserTotalDebt(reserveId, msg.sender);
// uint256 userTotalDebt = ISpoke(spoke).getUserTotalDebt(reserveId, msg.sender);
uint256 userTotalDebt = 0; // TODO
uint256 repayAmount = amount;
uint256 leftovers;
if (amount > userTotalDebt) {
Expand Down
3 changes: 2 additions & 1 deletion src/position-manager/SignatureGateway.sol
Original file line number Diff line number Diff line change
Expand Up @@ -112,7 +112,8 @@ contract SignatureGateway is ISignatureGateway, GatewayBase, NoncesKeyed, Multic
IERC20 underlying = IERC20(_getReserveUnderlying(spoke, reserveId));
uint256 repayAmount = MathUtils.min(
params.amount,
ISpoke(spoke).getUserTotalDebt(reserveId, user)
// ISpoke(spoke).getUserTotalDebt(reserveId, user)
0 // TODO
);

underlying.safeTransferFrom(user, address(this), repayAmount);
Expand Down
86 changes: 9 additions & 77 deletions src/spoke/Spoke.sol
Original file line number Diff line number Diff line change
Expand Up @@ -6,7 +6,9 @@ import {SafeCast} from 'src/dependencies/openzeppelin/SafeCast.sol';
import {SafeERC20, IERC20} from 'src/dependencies/openzeppelin/SafeERC20.sol';
import {IERC20Permit} from 'src/dependencies/openzeppelin/IERC20Permit.sol';
import {SignatureChecker} from 'src/dependencies/openzeppelin/SignatureChecker.sol';
import {AccessManagedUpgradeable} from 'src/dependencies/openzeppelin-upgradeable/AccessManagedUpgradeable.sol';
import {
AccessManagedUpgradeable
} from 'src/dependencies/openzeppelin-upgradeable/AccessManagedUpgradeable.sol';
import {EIP712} from 'src/dependencies/solady/EIP712.sol';
import {MathUtils} from 'src/libraries/math/MathUtils.sol';
import {PercentageMath} from 'src/libraries/math/PercentageMath.sol';
Expand All @@ -20,7 +22,7 @@ import {NoncesKeyed} from 'src/utils/NoncesKeyed.sol';
import {Multicall} from 'src/utils/Multicall.sol';
import {IAaveOracle} from 'src/spoke/interfaces/IAaveOracle.sol';
import {IHubBase} from 'src/hub/interfaces/IHubBase.sol';
import {ISpokeBase, ISpoke} from 'src/spoke/interfaces/ISpoke.sol';
import {ISpoke} from 'src/spoke/interfaces/ISpoke.sol';

/// @title Spoke
/// @author Aave Labs
Expand Down Expand Up @@ -226,7 +228,7 @@ abstract contract Spoke is ISpoke, Multicall, NoncesKeyed, AccessManagedUpgradea
emit UpdatePositionManager(positionManager, active);
}

/// @inheritdoc ISpokeBase
/// @inheritdoc ISpoke
function supply(
uint256 reserveId,
uint256 amount,
Expand All @@ -245,7 +247,7 @@ abstract contract Spoke is ISpoke, Multicall, NoncesKeyed, AccessManagedUpgradea
return (suppliedShares, amount);
}

/// @inheritdoc ISpokeBase
/// @inheritdoc ISpoke
function withdraw(
uint256 reserveId,
uint256 amount,
Expand Down Expand Up @@ -275,7 +277,7 @@ abstract contract Spoke is ISpoke, Multicall, NoncesKeyed, AccessManagedUpgradea
return (withdrawnShares, withdrawnAmount);
}

/// @inheritdoc ISpokeBase
/// @inheritdoc ISpoke
function borrow(
uint256 reserveId,
uint256 amount,
Expand All @@ -301,7 +303,7 @@ abstract contract Spoke is ISpoke, Multicall, NoncesKeyed, AccessManagedUpgradea
return (drawnShares, amount);
}

/// @inheritdoc ISpokeBase
/// @inheritdoc ISpoke
function repay(
uint256 reserveId,
uint256 amount,
Expand Down Expand Up @@ -343,7 +345,7 @@ abstract contract Spoke is ISpoke, Multicall, NoncesKeyed, AccessManagedUpgradea
return (restoredShares, totalDebtRestored);
}

/// @inheritdoc ISpokeBase
/// @inheritdoc ISpoke
function liquidationCall(
uint256 collateralReserveId,
uint256 debtReserveId,
Expand Down Expand Up @@ -518,30 +520,6 @@ abstract contract Spoke is ISpoke, Multicall, NoncesKeyed, AccessManagedUpgradea
return _reserveCount;
}

/// @inheritdoc ISpokeBase
function getReserveSuppliedAssets(uint256 reserveId) external view returns (uint256) {
Reserve storage reserve = _getReserve(reserveId);
return reserve.hub.getSpokeAddedAssets(reserve.assetId, address(this));
}

/// @inheritdoc ISpokeBase
function getReserveSuppliedShares(uint256 reserveId) external view returns (uint256) {
Reserve storage reserve = _getReserve(reserveId);
return reserve.hub.getSpokeAddedShares(reserve.assetId, address(this));
}

/// @inheritdoc ISpokeBase
function getReserveDebt(uint256 reserveId) external view returns (uint256, uint256) {
Reserve storage reserve = _getReserve(reserveId);
return reserve.hub.getSpokeOwed(reserve.assetId, address(this));
}

/// @inheritdoc ISpokeBase
function getReserveTotalDebt(uint256 reserveId) external view returns (uint256) {
Reserve storage reserve = _getReserve(reserveId);
return reserve.hub.getSpokeTotalOwed(reserve.assetId, address(this));
}

/// @inheritdoc ISpoke
function getReserve(uint256 reserveId) external view returns (Reserve memory) {
return _getReserve(reserveId);
Expand Down Expand Up @@ -580,52 +558,6 @@ abstract contract Spoke is ISpoke, Multicall, NoncesKeyed, AccessManagedUpgradea
return (positionStatus.isUsingAsCollateral(reserveId), positionStatus.isBorrowing(reserveId));
}

/// @inheritdoc ISpokeBase
function getUserSuppliedAssets(uint256 reserveId, address user) external view returns (uint256) {
Reserve storage reserve = _getReserve(reserveId);
return
reserve.hub.previewRemoveByShares(
reserve.assetId,
_userPositions[user][reserveId].suppliedShares
);
}

/// @inheritdoc ISpokeBase
function getUserSuppliedShares(uint256 reserveId, address user) external view returns (uint256) {
_getReserve(reserveId);
return _userPositions[user][reserveId].suppliedShares;
}

/// @inheritdoc ISpokeBase
function getUserDebt(uint256 reserveId, address user) external view returns (uint256, uint256) {
Reserve storage reserve = _getReserve(reserveId);
UserPosition storage userPosition = _userPositions[user][reserveId];
(uint256 drawnDebt, uint256 premiumDebtRay) = userPosition.getDebt(
reserve.hub,
reserve.assetId
);
return (drawnDebt, premiumDebtRay.fromRayUp());
}

/// @inheritdoc ISpokeBase
function getUserTotalDebt(uint256 reserveId, address user) external view returns (uint256) {
Reserve storage reserve = _getReserve(reserveId);
UserPosition storage userPosition = _userPositions[user][reserveId];
(uint256 drawnDebt, uint256 premiumDebtRay) = userPosition.getDebt(
reserve.hub,
reserve.assetId
);
return (drawnDebt + premiumDebtRay.fromRayUp());
}

/// @inheritdoc ISpokeBase
function getUserPremiumDebtRay(uint256 reserveId, address user) external view returns (uint256) {
Reserve storage reserve = _getReserve(reserveId);
UserPosition storage userPosition = _userPositions[user][reserveId];
(, uint256 premiumDebtRay) = userPosition.getDebt(reserve.hub, reserve.assetId);
return premiumDebtRay;
}

/// @inheritdoc ISpoke
function getUserPosition(
uint256 reserveId,
Expand Down
40 changes: 1 addition & 39 deletions src/spoke/TreasurySpoke.sol
Original file line number Diff line number Diff line change
Expand Up @@ -6,7 +6,7 @@ import {Ownable2Step, Ownable} from 'src/dependencies/openzeppelin/Ownable2Step.
import {SafeERC20, IERC20} from 'src/dependencies/openzeppelin/SafeERC20.sol';
import {MathUtils} from 'src/libraries/math/MathUtils.sol';
import {IHubBase} from 'src/hub/interfaces/IHubBase.sol';
import {ITreasurySpoke, ISpokeBase} from 'src/spoke/interfaces/ITreasurySpoke.sol';
import {ITreasurySpoke} from 'src/spoke/interfaces/ITreasurySpoke.sol';

/// @title TreasurySpoke
/// @author Aave Labs
Expand Down Expand Up @@ -73,49 +73,11 @@ contract TreasurySpoke is ITreasurySpoke, Ownable2Step {
return HUB.getSpokeAddedShares(reserveId, address(this));
}

/// @inheritdoc ISpokeBase
function borrow(uint256, uint256, address) external pure returns (uint256, uint256) {
revert UnsupportedAction();
}

/// @inheritdoc ISpokeBase
function repay(uint256, uint256, address) external pure returns (uint256, uint256) {
revert UnsupportedAction();
}

/// @inheritdoc ISpokeBase
function liquidationCall(uint256, uint256, address, uint256, bool) external pure {
revert UnsupportedAction();
}

/// @inheritdoc ISpokeBase
function getUserDebt(uint256, address) external pure returns (uint256, uint256) {}

/// @inheritdoc ISpokeBase
function getUserTotalDebt(uint256, address) external pure returns (uint256) {}

/// @inheritdoc ISpokeBase
function getUserPremiumDebtRay(uint256, address) external pure returns (uint256) {}

/// @inheritdoc ISpokeBase
function getReserveSuppliedAssets(uint256 reserveId) external view returns (uint256) {
return HUB.getSpokeAddedAssets(reserveId, address(this));
}

/// @inheritdoc ISpokeBase
function getReserveSuppliedShares(uint256 reserveId) external view returns (uint256) {
return HUB.getSpokeAddedShares(reserveId, address(this));
}

/// @inheritdoc ISpokeBase
function getUserSuppliedAssets(uint256, address) external pure returns (uint256) {}

/// @inheritdoc ISpokeBase
function getUserSuppliedShares(uint256, address) external pure returns (uint256) {}

/// @inheritdoc ISpokeBase
function getReserveDebt(uint256) external pure returns (uint256, uint256) {}

/// @inheritdoc ISpokeBase
function getReserveTotalDebt(uint256) external pure returns (uint256) {}
}
Loading
Loading