/ contracts / interfaces / IUnderlyingCreditProvider.sol
IUnderlyingCreditProvider.sol
 1  pragma solidity >=0.6.0;
 2  pragma experimental ABIEncoderV2;
 3  
 4  interface IUnderlyingCreditProvider {
 5      function initialize(address _udlCdtk) external;
 6      function getUnderlyingCreditToken() external view returns (address);
 7      function addBalance(address to, address token, uint value) external;
 8      function addBalance(uint value) external;
 9      function balanceOf(address owner) external view returns (uint);
10      function totalTokenStock() external view returns (uint v);
11      function grantTokens(address to, uint value) external;
12      function getTotalOwners() external view returns (uint);
13      function getTotalBalance() external view returns (uint);
14      function processPayment(address from, address to, uint value) external;
15      function transferBalance(address from, address to, uint value) external;
16      function depositTokens(address to, address token, uint value) external;
17      function withdrawTokens(address owner, uint value) external;
18      function issueCredit(address to, uint value) external;
19      function swapTokenForCredit(address to, address token, uint value) external;
20      function processEarlyLpWithdrawal(address to, uint credit) external;
21      function swapStablecoinForUnderlying(address udlCdtp, address[] calldata path, int price, uint balance, uint amountOut) external;
22      function swapBalanceForCreditTokens(address owner, uint value) external;
23      function ensureCaller(address addr) external view;
24  }