2021-03-29 09:57:54 +00:00
|
|
|
pragma solidity ^0.7.0;
|
|
|
|
|
|
|
|
import { TokenInterface } from "../../common/interfaces.sol";
|
|
|
|
|
|
|
|
interface ManagerLike {
|
2021-03-29 10:34:18 +00:00
|
|
|
function safeCan(address, uint, address) external view returns (uint);
|
|
|
|
function collateralTypes(uint) external view returns (bytes32);
|
|
|
|
function lastSAFEID(address) external view returns (uint);
|
|
|
|
function safeCount(address) external view returns (uint);
|
|
|
|
function ownsSAFE(uint) external view returns (address);
|
|
|
|
function safes(uint) external view returns (address);
|
|
|
|
function safeEngine() external view returns (address);
|
|
|
|
function openSAFE(bytes32, address) external returns (uint);
|
|
|
|
function transferSAFEOwnership(uint, address) external;
|
|
|
|
function modifySAFECollateralization(uint, int, int) external;
|
|
|
|
function transferCollateral(uint, address, uint) external;
|
|
|
|
function transferInternalCoins(uint, address, uint) external;
|
2021-03-29 09:57:54 +00:00
|
|
|
}
|
|
|
|
|
2021-03-29 10:34:18 +00:00
|
|
|
interface SafeEngineLike {
|
2021-03-29 15:20:34 +00:00
|
|
|
function safeRights(address, address) external view returns (uint);
|
2021-03-29 10:34:18 +00:00
|
|
|
function collateralTypes(bytes32) external view returns (uint, uint, uint, uint, uint);
|
2021-03-30 10:53:38 +00:00
|
|
|
function coinBalance(address) external view returns (uint);
|
2021-03-29 10:34:18 +00:00
|
|
|
function safes(bytes32, address) external view returns (uint, uint);
|
|
|
|
function modifySAFECollateralization(
|
2021-03-29 09:57:54 +00:00
|
|
|
bytes32,
|
|
|
|
address,
|
|
|
|
address,
|
|
|
|
address,
|
|
|
|
int,
|
|
|
|
int
|
|
|
|
) external;
|
2021-03-29 10:34:18 +00:00
|
|
|
function approveSAFEModification(address) external;
|
|
|
|
function transferInternalCoins(address, address, uint) external;
|
|
|
|
function tokenCollateral(bytes32, address) external view returns (uint);
|
2021-03-29 09:57:54 +00:00
|
|
|
}
|
|
|
|
|
|
|
|
interface TokenJoinInterface {
|
2021-03-29 10:34:18 +00:00
|
|
|
function decimals() external returns (uint);
|
|
|
|
function collateral() external returns (TokenInterface);
|
2021-03-29 15:20:34 +00:00
|
|
|
function collateralType() external returns (bytes32);
|
2021-03-29 09:57:54 +00:00
|
|
|
function join(address, uint) external payable;
|
|
|
|
function exit(address, uint) external;
|
|
|
|
}
|
|
|
|
|
2021-03-29 10:34:18 +00:00
|
|
|
interface CoinJoinInterface {
|
|
|
|
function safeEngine() external returns (SafeEngineLike);
|
2021-03-30 10:53:38 +00:00
|
|
|
function systemCoin() external returns (TokenInterface);
|
2021-03-29 09:57:54 +00:00
|
|
|
function join(address, uint) external payable;
|
|
|
|
function exit(address, uint) external;
|
|
|
|
}
|
|
|
|
|
2021-03-29 10:34:18 +00:00
|
|
|
interface TaxCollectorLike {
|
|
|
|
function taxSingle(bytes32) external returns (uint);
|
2021-03-29 09:57:54 +00:00
|
|
|
}
|
2021-03-29 15:20:34 +00:00
|
|
|
|
|
|
|
interface ConnectorsInterface {
|
|
|
|
function chief(address) external view returns (bool);
|
|
|
|
}
|
|
|
|
|
|
|
|
interface IndexInterface {
|
|
|
|
function master() external view returns (address);
|
|
|
|
}
|
2021-03-30 10:52:29 +00:00
|
|
|
|
|
|
|
interface GebMapping {
|
|
|
|
function collateralJoinMapping(bytes32) external view returns(address);
|
|
|
|
}
|