cic-contracts/solidity/TokenSwap.sol

26 lines
1.1 KiB
Solidity

pragma solidity >=0.6.12;
// Author: Louis Holbrook <dev@holbrook.no> 0826EDA1702D1E87C6E2875121D2E7BB88C2A746
// SPDX-License-Identifier: AGPL-3.0-or-later
// File-version: 1
interface ITokenSwap {
// Add inToken liquidity of the full balance of the sender
// Requires token approval for the balance.
function deposit(address _inToken) external returns (uint256);
// Add inToken liquidity to the tune of given value.
// Requires token approval for the corresponding value.
function deposit(address _inToken, uint256 _value) external returns (uint256);
// Withdraw any pending outToken balance in the pool for the sender.
function withdraw(address _outToken) external returns (uint256);
// Withdraw pending outToken balance of given value in the pool for the sender.
function withdraw(address _outToken, uint256 _value) external returns (uint256);
// Exchange inToken equalling given value for outToken.
// Requires token approval for the value of inToken.
function withdraw(address _outToken, address _inToken, uint256 _value) external returns (uint256);
}