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);
- setAddresses(address _borrowerOperationsAddress, address _troveManagerAddress, address _activePoolAddress)
- getETH()
- getCollateral(address _account)
- accountSurplus(address _account, uint256 _amount)
- claimColl(address _account)
- _requireCallerIsBorrowerOperations()
- _requireCallerIsTroveManager()
- _requireCallerIsActivePool()
- constructor()
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);
}
function getETH() external view
returns(uint256)
Source Code
function getETH() external view override returns (uint) {
return ETH;
}
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];
}
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);
}
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");
}
function _requireCallerIsBorrowerOperations() internal view
Source Code
function _requireCallerIsBorrowerOperations() internal view {
require(
msg.sender == borrowerOperationsAddress,
"CollSurplusPool: Caller is not Borrower Operations");
}
function _requireCallerIsTroveManager() internal view
Source Code
function _requireCallerIsTroveManager() internal view {
require(
msg.sender == troveManagerAddress,
"CollSurplusPool: Caller is not TroveManager");
}
function _requireCallerIsActivePool() internal view
Source Code
function _requireCallerIsActivePool() internal view {
require(
msg.sender == activePoolAddress,
"CollSurplusPool: Caller is not Active Pool");
}
function () external payable
Source Code
receive() external payable {
_requireCallerIsActivePool();
ETH = ETH.add(msg.value);
}
- ActivePool
- ActivePoolStorage
- BaseMath
- BorrowerOperations
- BorrowerOperationsScript
- BorrowerOperationsStorage
- BorrowerWrappersScript
- CheckContract
- CollSurplusPool
- CollSurplusPoolStorage
- console
- Context
- DefaultPool
- DefaultPoolStorage
- DocsCover
- DSAuth
- DSAuthEvents
- DSAuthority
- DSNote
- DSProxy
- DSProxyCache
- DSProxyFactory
- ERC20
- ETHTransferScript
- FeeDistributor
- FeeDistributorStorage
- GasPool
- HintHelpers
- HintHelpersStorage
- IActivePool
- IBalanceRedirectPresale
- IBorrowerOperations
- ICollSurplusPool
- IDefaultPool
- IERC20
- IERC2612
- IExternalPriceFeed
- IFeeDistributor
- IFeeSharingProxy
- ILiquityBase
- ILiquityBaseParams
- IMasset
- IMoCBaseOracle
- Initializable
- IPool
- IPriceFeed
- IRSKOracle
- ISortedTroves
- IStabilityPool
- ITroveManager
- IWrbtc
- IZUSDToken
- LiquityBase
- LiquityBaseParams
- LiquityMath
- LiquitySafeMath128
- MoCMedianizer
- MultiTroveGetter
- MultiTroveGetterStorage
- NueToken
- Ownable
- PriceFeed
- PriceFeedStorage
- ProxiableContract
- ProxiableContract2
- Proxy
- RskOracle
- SafeMath
- SortedTroves
- SortedTrovesStorage
- StabilityPool
- StabilityPoolScript
- StabilityPoolStorage
- Storage
- Storage2
- TokenScript
- TroveManager
- TroveManagerBase
- TroveManagerBase1MinuteBootstrap
- TroveManagerRedeemOps
- TroveManagerScript
- TroveManagerStorage
- UpgradableProxy
- ZUSDToken
- ZUSDTokenStorage