/ contracts / interfaces / ICreditProvider.sol
ICreditProvider.sol
 1  pragma solidity >=0.6.0;
 2  pragma experimental ABIEncoderV2;
 3  
 4  interface ICreditProvider {
 5      function addBalance(address to, address token, uint value) external;
 6      function addBalance(uint value) external;
 7      function balanceOf(address owner) external view returns (uint);
 8      function totalTokenStock() external view returns (uint v);
 9      function grantTokens(address to, uint value) external;
10      function grantTokens(address to, uint value, address[] calldata tokensInOrder, uint[] calldata amountsOutInOrder) external;
11      function getTotalOwners() external view returns (uint);
12      function getTotalBalance() external view returns (uint);
13      function processPayment(address from, address to, uint value) external;
14      function transferBalance(address from, address to, uint value) external;
15      function withdrawTokens(address owner, uint value) external;
16      function withdrawTokens(address owner, uint value , address[] calldata tokensInOrder, uint[] calldata amountsOutInOrder) external;
17      function insertPoolCaller(address llp) external;
18      function processIncentivizationPayment(address to, uint credit) external;
19      function borrowBuyLiquidity(address to, uint credit, address option) external;
20      function borrowSellLiquidity(address to, uint credit, address option) external;
21      function issueCredit(address to, uint value) external;
22      function swapTokenForCredit(address to, address token, uint value) external;
23      function processEarlyLpWithdrawal(address to, uint credit) external;
24      function nullOptionBorrowBalance(address option, address pool) external;
25      function creditPoolBalance(address to, address token, uint value) external;
26      function borrowCreditFromPool(address to, address pool, uint value) external;
27      function borrowTokensByPreference(address to, address pool, uint value, address[] calldata tokensInOrder, uint[] calldata amountsOutInOrder) external;
28      function ensureCaller(address addr) external view;
29  }