Skip to content

Commit

Permalink
Update stroage access and fix Lint
Browse files Browse the repository at this point in the history
  • Loading branch information
Debugger022 committed Mar 6, 2023
1 parent 0e77f44 commit b382fb0
Show file tree
Hide file tree
Showing 9 changed files with 176 additions and 204 deletions.
23 changes: 11 additions & 12 deletions contracts/Diamond/ComptrollerDiamond.sol
Original file line number Diff line number Diff line change
Expand Up @@ -11,21 +11,20 @@ pragma solidity ^0.8.0;
import { LibDiamond } from "./libraries/LibDiamond.sol";
import { IDiamondCut } from "./interfaces/IDiamondCut.sol";

contract Diamond {

constructor(address _contractOwner, address _diamondCutFacet) payable {
contract Diamond {
constructor(address _contractOwner, address _diamondCutFacet) payable {
LibDiamond.setContractOwner(_contractOwner);

// Add the diamondCut external function from the diamondCutFacet
IDiamondCut.FacetCut[] memory cut = new IDiamondCut.FacetCut[](1);
bytes4[] memory functionSelectors = new bytes4[](1);
functionSelectors[0] = IDiamondCut.diamondCut.selector;
cut[0] = IDiamondCut.FacetCut({
facetAddress: _diamondCutFacet,
action: IDiamondCut.FacetCutAction.Add,
facetAddress: _diamondCutFacet,
action: IDiamondCut.FacetCutAction.Add,
functionSelectors: functionSelectors
});
LibDiamond.diamondCut(cut, address(0), "");
LibDiamond.diamondCut(cut, address(0), "");
}

// Find facet for function that is called and execute the
Expand All @@ -50,12 +49,12 @@ contract Diamond {
returndatacopy(0, 0, returndatasize())
// return any return value or error back to the caller
switch result
case 0 {
revert(0, returndatasize())
}
default {
return(0, returndatasize())
}
case 0 {
revert(0, returndatasize())
}
default {
return(0, returndatasize())
}
}
}

Expand Down
6 changes: 1 addition & 5 deletions contracts/Diamond/facets/DiamondCutFacet.sol
Original file line number Diff line number Diff line change
Expand Up @@ -19,11 +19,7 @@ contract DiamondCutFacet is IDiamondCut {
/// @param _init The address of the contract or facet to execute _calldata
/// @param _calldata A function call, including function selector and arguments
/// _calldata is executed with delegatecall on _init
function diamondCut(
FacetCut[] calldata _diamondCut,
address _init,
bytes calldata _calldata
) external override {
function diamondCut(FacetCut[] calldata _diamondCut, address _init, bytes calldata _calldata) external override {
LibDiamond.enforceIsContractOwner();
LibDiamond.diamondCut(_diamondCut, _init, _calldata);
}
Expand Down
39 changes: 19 additions & 20 deletions contracts/Diamond/facets/RewardFacet.sol
Original file line number Diff line number Diff line change
@@ -1,20 +1,21 @@
pragma solidity ^0.5.16;

import "../Oracle/PriceOracle.sol";
import "../Tokens/VTokens/VToken.sol";
import "../Utils/ErrorReporter.sol";
import "../Tokens/XVS/XVS.sol";
import "../Tokens/VAI/VAI.sol";
import "../Governance/IAccessControlManager.sol";

contract RewardFacet is ComptrollerErrorReporter, ExponentialNoError {
import "../../Oracle/PriceOracle.sol";
import "../../Tokens/VTokens/VToken.sol";
import "../../Utils/ErrorReporter.sol";
import "../../Tokens/XVS/XVS.sol";
import "../../Tokens/VAI/VAI.sol";
import "../libraries/appStorage.sol";
import "../../Governance/IAccessControlManager.sol";

contract RewardFacet is ComptrollerErrorReporter, ExponentialNoError {
AppStorage internal s;
/// @notice Emitted when Venus is granted by admin
event VenusGranted(address recipient, uint amount);

/// @notice Emitted when XVS is distributed to VAI Vault
event DistributedVAIVaultVenus(uint amount);

/**
* @notice Claim all the xvs accrued by holder in all markets and VAI
* @param holder The address to claim XVS for
Expand Down Expand Up @@ -110,7 +111,7 @@ contract RewardFacet is ComptrollerErrorReporter, ExponentialNoError {
* @param amount The amount of XVS to (possibly) transfer
*/
function _grantXVS(address recipient, uint amount) external {
ensureAdminOr(comptrollerImplementation);
ensureAdminOr(s.comptrollerImplementation);
uint amountLeft = grantXVSInternal(recipient, amount, 0, false);
require(amountLeft == 0, "insufficient xvs for grant");
emit VenusGranted(recipient, amount);
Expand Down Expand Up @@ -142,7 +143,7 @@ contract RewardFacet is ComptrollerErrorReporter, ExponentialNoError {
* @param market vToken address
*/
function actionPaused(address market, Action action) public view returns (bool) {
return _actionPaused[market][uint(action)];
return s._actionPaused[market][uint(action)];
}

/*** VAI functions ***/
Expand All @@ -151,7 +152,7 @@ contract RewardFacet is ComptrollerErrorReporter, ExponentialNoError {
* @notice Transfer XVS to VAI Vault
*/
function releaseToVault() public {
if (releaseStartBlock == 0 || getBlockNumber() < releaseStartBlock) {
if (s.releaseStartBlock == 0 || getBlockNumber() < s.releaseStartBlock) {
return;
}

Expand All @@ -163,26 +164,26 @@ contract RewardFacet is ComptrollerErrorReporter, ExponentialNoError {
}

uint256 actualAmount;
uint256 deltaBlocks = sub_(getBlockNumber(), releaseStartBlock);
uint256 deltaBlocks = sub_(getBlockNumber(), s.releaseStartBlock);
// releaseAmount = venusVAIVaultRate * deltaBlocks
uint256 _releaseAmount = mul_(venusVAIVaultRate, deltaBlocks);
uint256 _releaseAmount = mul_(s.venusVAIVaultRate, deltaBlocks);

if (xvsBalance >= _releaseAmount) {
actualAmount = _releaseAmount;
} else {
actualAmount = xvsBalance;
}

if (actualAmount < minReleaseAmount) {
if (actualAmount < s.minReleaseAmount) {
return;
}

s.releaseStartBlock = getBlockNumber();

xvs.transfer(vaiVaultAddress, actualAmount);
xvs.transfer(s.vaiVaultAddress, actualAmount);
emit DistributedVAIVaultVenus(actualAmount);

IVAIVault(vaiVaultAddress).updatePendingRewards();
IVAIVault(s.vaiVaultAddress).updatePendingRewards();
}

/**
Expand Down Expand Up @@ -225,9 +226,7 @@ contract RewardFacet is ComptrollerErrorReporter, ExponentialNoError {
// If there is a positive shortfall, the XVS reward is accrued,
// but won't be granted to this holder
(, , uint shortfall) = getHypotheticalAccountLiquidityInternal(holder, VToken(0), 0, 0);
venusAccrued[holder] = grantXVSInternal(holder, venusAccrued[holder], shortfall, collateral);
s.venusAccrued[holder] = grantXVSInternal(holder, venusAccrued[holder], shortfall, collateral);
}
}

}

Loading

0 comments on commit b382fb0

Please sign in to comment.