mirror of
				https://github.com/Instadapp/aave-protocol-v2.git
				synced 2024-07-29 21:47:30 +00:00 
			
		
		
		
	Fixes to run on StableDebtToken contract
This commit is contained in:
		
							parent
							
								
									a63e337222
								
							
						
					
					
						commit
						4030d48787
					
				| 
						 | 
				
			
			@ -286,7 +286,7 @@ contract StableDebtToken is IStableDebtToken, DebtTokenBase {
 | 
			
		|||
   * @param avgRate the average rate at which calculate the total supply
 | 
			
		||||
   * @return The debt balance of the user since the last burn/mint action
 | 
			
		||||
   **/
 | 
			
		||||
  function _calcTotalSupply(uint256 avgRate) internal view returns (uint256) {
 | 
			
		||||
  function _calcTotalSupply(uint256 avgRate) internal virtual view returns (uint256) {
 | 
			
		||||
    uint256 principalSupply = super.totalSupply();
 | 
			
		||||
 | 
			
		||||
    if (principalSupply == 0) {
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -2,13 +2,6 @@ methods {
 | 
			
		|||
	getUserLastUpdated(address) returns uint40 envfree
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
ghost ghostSupply() returns uint256;
 | 
			
		||||
 | 
			
		||||
hook Sstore (slot 0)[address a] uint256 balance (uint256 old_balance) STORAGE {
 | 
			
		||||
	require old_balance <= ghostSupply();
 | 
			
		||||
	havoc ghostSupply assuming ghostSupply@new() == ghostSupply@old() + (balance - old_balance);
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
rule integrityTimeStamp(address user, method f) {
 | 
			
		||||
	env e;
 | 
			
		||||
	require sinvoke getIncentivesController(e) == 0;
 | 
			
		||||
| 
						 | 
				
			
			@ -18,15 +11,6 @@ rule integrityTimeStamp(address user, method f) {
 | 
			
		|||
	assert getUserLastUpdated(user) <= e.block.timestamp;
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
rule totalSupplyInvariant(method f) {
 | 
			
		||||
	env e;
 | 
			
		||||
	require sinvoke getIncentivesController(e) == 0;
 | 
			
		||||
	require totalSupply(e) == ghostSupply();
 | 
			
		||||
	calldataarg arg;
 | 
			
		||||
	sinvoke f(e, arg);
 | 
			
		||||
	assert totalSupply(e) == ghostSupply();
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
/**
 | 
			
		||||
TotalSupply is the sum of all users’ balances
 | 
			
		||||
	
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -1,8 +1,5 @@
 | 
			
		|||
pragma solidity ^0.6.8;
 | 
			
		||||
 | 
			
		||||
import {Context} from '@openzeppelin/contracts/GSN/Context.sol';
 | 
			
		||||
import {IERC20} from '@openzeppelin/contracts/token/ERC20/IERC20.sol';
 | 
			
		||||
import {SafeMath} from '@openzeppelin/contracts/math/SafeMath.sol';
 | 
			
		||||
import {StableDebtToken} from '../../contracts/tokenization/StableDebtToken.sol';
 | 
			
		||||
import {IncentivizedERC20} from '../../contracts/tokenization/IncentivizedERC20.sol';
 | 
			
		||||
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
		Loading…
	
		Reference in New Issue
	
	Block a user