-
Notifications
You must be signed in to change notification settings - Fork 104
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
- Loading branch information
1 parent
dc61149
commit d6448c4
Showing
3 changed files
with
136 additions
and
0 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,10 @@ | ||
pragma solidity ^0.5.16; | ||
|
||
interface IERC20 { | ||
function approve(address, uint) external; | ||
function transfer(address, uint) external; | ||
function transferFrom(address, address, uint) external; | ||
function deposit() external payable; | ||
function withdraw(uint) external; | ||
function balanceOf(address) external view returns (uint); | ||
} |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,63 @@ | ||
pragma solidity ^0.5.16; | ||
|
||
interface GemLike { | ||
function approve(address, uint) external; | ||
function transfer(address, uint) external; | ||
function transferFrom(address, address, uint) external; | ||
function deposit() external payable; | ||
function withdraw(uint) external; | ||
} | ||
|
||
interface DaiJoinLike { | ||
function vat() external returns (VatLike); | ||
function dai() external returns (GemLike); | ||
function join(address, uint) external payable; | ||
function exit(address, uint) external; | ||
} | ||
|
||
interface VatLike { | ||
function can(address, address) external view returns (uint); | ||
function ilks(bytes32) external view returns (uint, uint, uint, uint, uint); | ||
function dai(address) external view returns (uint); | ||
function urns(bytes32, address) external view returns (uint, uint); | ||
function frob(bytes32, address, address, address, int, int) external; | ||
function hope(address) external; | ||
function move(address, address, uint) external; | ||
} | ||
|
||
interface GemJoinLike { | ||
function dec() external returns (uint); | ||
function gem() external returns (GemLike); | ||
function join(address, uint) external payable; | ||
function exit(address, uint) external; | ||
} | ||
|
||
interface GemJoinETHLike { | ||
function dec() external returns (uint); | ||
function gem() external returns (GemLike); | ||
function join(address) external payable; | ||
function exit(address, uint) external; | ||
} | ||
|
||
interface OasisLike { | ||
function sellAllAmount(address pay_gem, uint pay_amt, address buy_gem, uint min_fill_amount) external returns (uint); | ||
} | ||
|
||
interface ManagerLike { | ||
function cdpCan(address, uint, address) external view returns (uint); | ||
function ilks(uint) external view returns (bytes32); | ||
function owns(uint) external view returns (address); | ||
function urns(uint) external view returns (address); | ||
function vat() external view returns (address); | ||
function open(bytes32, address) external returns (uint); | ||
function give(uint, address) external; | ||
function cdpAllow(uint, address, uint) external; | ||
function urnAllow(address, uint) external; | ||
function frob(uint, int, int) external; | ||
function flux(uint, address, uint) external; | ||
function move(uint, address, uint) external; | ||
function exit(address, uint, address, uint) external; | ||
function quit(uint, address) external; | ||
function enter(address, uint) external; | ||
function shift(uint, uint) external; | ||
} |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,63 @@ | ||
pragma solidity ^0.5.0; | ||
|
||
|
||
contract IUniswapFactory { | ||
// Public Variables | ||
address public exchangeTemplate; | ||
uint256 public tokenCount; | ||
// // Create Exchange | ||
function createExchange(address token) external returns (address exchange); | ||
// Get Exchange and Token Info | ||
function getExchange(address token) external view returns (address exchange); | ||
function getToken(address exchange) external view returns (address token); | ||
function getTokenWithId(uint256 tokenId) external view returns (address token); | ||
// Never use | ||
function initializeFactory(address template) external; | ||
} | ||
|
||
contract IUniswapExchange { | ||
// Address of ERC20 token sold on this exchange | ||
function tokenAddress() external view returns (address token); | ||
// Address of Uniswap Factory | ||
function factoryAddress() external view returns (address factory); | ||
// Provide Liquidity | ||
function addLiquidity(uint256 min_liquidity, uint256 max_tokens, uint256 deadline) external payable returns (uint256); | ||
function removeLiquidity(uint256 amount, uint256 min_eth, uint256 min_tokens, uint256 deadline) external returns (uint256, uint256); | ||
// Get Prices | ||
function getEthToTokenInputPrice(uint256 eth_sold) external view returns (uint256 tokens_bought); | ||
function getEthToTokenOutputPrice(uint256 tokens_bought) external view returns (uint256 eth_sold); | ||
function getTokenToEthInputPrice(uint256 tokens_sold) external view returns (uint256 eth_bought); | ||
function getTokenToEthOutputPrice(uint256 eth_bought) external view returns (uint256 tokens_sold); | ||
// Trade ETH to ERC20 | ||
function ethToTokenSwapInput(uint256 min_tokens, uint256 deadline) external payable returns (uint256 tokens_bought); | ||
function ethToTokenTransferInput(uint256 min_tokens, uint256 deadline, address recipient) external payable returns (uint256 tokens_bought); | ||
function ethToTokenSwapOutput(uint256 tokens_bought, uint256 deadline) external payable returns (uint256 eth_sold); | ||
function ethToTokenTransferOutput(uint256 tokens_bought, uint256 deadline, address recipient) external payable returns (uint256 eth_sold); | ||
// Trade ERC20 to ETH | ||
function tokenToEthSwapInput(uint256 tokens_sold, uint256 min_eth, uint256 deadline) external returns (uint256 eth_bought); | ||
function tokenToEthTransferInput(uint256 tokens_sold, uint256 min_eth, uint256 deadline, address recipient) external returns (uint256 eth_bought); | ||
function tokenToEthSwapOutput(uint256 eth_bought, uint256 max_tokens, uint256 deadline) external returns (uint256 tokens_sold); | ||
function tokenToEthTransferOutput(uint256 eth_bought, uint256 max_tokens, uint256 deadline, address recipient) external returns (uint256 tokens_sold); | ||
// Trade ERC20 to ERC20 | ||
function tokenToTokenSwapInput(uint256 tokens_sold, uint256 min_tokens_bought, uint256 min_eth_bought, uint256 deadline, address token_addr) external returns (uint256 tokens_bought); | ||
function tokenToTokenTransferInput(uint256 tokens_sold, uint256 min_tokens_bought, uint256 min_eth_bought, uint256 deadline, address recipient, address token_addr) external returns (uint256 tokens_bought); | ||
function tokenToTokenSwapOutput(uint256 tokens_bought, uint256 max_tokens_sold, uint256 max_eth_sold, uint256 deadline, address token_addr) external returns (uint256 tokens_sold); | ||
function tokenToTokenTransferOutput(uint256 tokens_bought, uint256 max_tokens_sold, uint256 max_eth_sold, uint256 deadline, address recipient, address token_addr) external returns (uint256 tokens_sold); | ||
// Trade ERC20 to Custom Pool | ||
function tokenToExchangeSwapInput(uint256 tokens_sold, uint256 min_tokens_bought, uint256 min_eth_bought, uint256 deadline, address exchange_addr) external returns (uint256 tokens_bought); | ||
function tokenToExchangeTransferInput(uint256 tokens_sold, uint256 min_tokens_bought, uint256 min_eth_bought, uint256 deadline, address recipient, address exchange_addr) external returns (uint256 tokens_bought); | ||
function tokenToExchangeSwapOutput(uint256 tokens_bought, uint256 max_tokens_sold, uint256 max_eth_sold, uint256 deadline, address exchange_addr) external returns (uint256 tokens_sold); | ||
function tokenToExchangeTransferOutput(uint256 tokens_bought, uint256 max_tokens_sold, uint256 max_eth_sold, uint256 deadline, address recipient, address exchange_addr) external returns (uint256 tokens_sold); | ||
// ERC20 comaptibility for liquidity tokens | ||
bytes32 public name; | ||
bytes32 public symbol; | ||
uint256 public decimals; | ||
function transfer(address _to, uint256 _value) external returns (bool); | ||
function transferFrom(address _from, address _to, uint256 value) external returns (bool); | ||
function approve(address _spender, uint256 _value) external returns (bool); | ||
function allowance(address _owner, address _spender) external view returns (uint256); | ||
function balanceOf(address _owner) external view returns (uint256); | ||
function totalSupply() external view returns (uint256); | ||
// Never use | ||
function setup(address token_addr) external; | ||
} |