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 }