Skip to content

Latest commit

 

History

History
350 lines (280 loc) · 9.08 KB

CollSurplusPool.md

File metadata and controls

350 lines (280 loc) · 9.08 KB

CollSurplusPool.sol

View Source: contracts/CollSurplusPool.sol

↗ Extends: CollSurplusPoolStorage, CheckContract, ICollSurplusPool

CollSurplusPool

Events

event BorrowerOperationsAddressChanged(address  _newBorrowerOperationsAddress);
event TroveManagerAddressChanged(address  _newTroveManagerAddress);
event ActivePoolAddressChanged(address  _newActivePoolAddress);
event CollBalanceUpdated(address indexed _account, uint256  _newBalance);
event EtherSent(address  _to, uint256  _amount);

Functions


setAddresses

function setAddresses(address _borrowerOperationsAddress, address _troveManagerAddress, address _activePoolAddress) external nonpayable onlyOwner 

Arguments

Name Type Description
_borrowerOperationsAddress address
_troveManagerAddress address
_activePoolAddress address
Source Code
function setAddresses(
        address _borrowerOperationsAddress,
        address _troveManagerAddress,
        address _activePoolAddress
    )
        external
        override
        onlyOwner
    {
        checkContract(_borrowerOperationsAddress);
        checkContract(_troveManagerAddress);
        checkContract(_activePoolAddress);

        borrowerOperationsAddress = _borrowerOperationsAddress;
        troveManagerAddress = _troveManagerAddress;
        activePoolAddress = _activePoolAddress;

        emit BorrowerOperationsAddressChanged(_borrowerOperationsAddress);
        emit TroveManagerAddressChanged(_troveManagerAddress);
        emit ActivePoolAddressChanged(_activePoolAddress);

    }

getETH

function getETH() external view
returns(uint256)
Source Code
function getETH() external view override returns (uint) {
        return ETH;
    }

getCollateral

function getCollateral(address _account) external view
returns(uint256)

Arguments

Name Type Description
_account address
Source Code
function getCollateral(address _account) external view override returns (uint) {
        return balances[_account];
    }

accountSurplus

function accountSurplus(address _account, uint256 _amount) external nonpayable

Arguments

Name Type Description
_account address
_amount uint256
Source Code
function accountSurplus(address _account, uint _amount) external override {
        _requireCallerIsTroveManager();

        uint newAmount = balances[_account].add(_amount);
        balances[_account] = newAmount;

        emit CollBalanceUpdated(_account, newAmount);
    }

claimColl

function claimColl(address _account) external nonpayable

Arguments

Name Type Description
_account address
Source Code
function claimColl(address _account) external override {
        _requireCallerIsBorrowerOperations();
        uint claimableColl = balances[_account];
        require(claimableColl > 0, "CollSurplusPool: No collateral available to claim");

        balances[_account] = 0;
        emit CollBalanceUpdated(_account, 0);

        ETH = ETH.sub(claimableColl);
        emit EtherSent(_account, claimableColl);

        (bool success, ) = _account.call{ value: claimableColl }("");
        require(success, "CollSurplusPool: sending ETH failed");
    }

_requireCallerIsBorrowerOperations

function _requireCallerIsBorrowerOperations() internal view
Source Code
function _requireCallerIsBorrowerOperations() internal view {
        require(
            msg.sender == borrowerOperationsAddress,
            "CollSurplusPool: Caller is not Borrower Operations");
    }

_requireCallerIsTroveManager

function _requireCallerIsTroveManager() internal view
Source Code
function _requireCallerIsTroveManager() internal view {
        require(
            msg.sender == troveManagerAddress,
            "CollSurplusPool: Caller is not TroveManager");
    }

_requireCallerIsActivePool

function _requireCallerIsActivePool() internal view
Source Code
function _requireCallerIsActivePool() internal view {
        require(
            msg.sender == activePoolAddress,
            "CollSurplusPool: Caller is not Active Pool");
    }

constructor

function () external payable
Source Code
receive() external payable {
        _requireCallerIsActivePool();
        ETH = ETH.add(msg.value);
    }

Contracts