Address Contract Partially Verified
Address
0x617bED8699F71fE830a50469bd474bc8481F5235
Balance
0 ETH
Nonce
1
Code Size
3051 bytes
Creator
0x377598d5...A2D5 at tx 0xb8e0dec7...47f5ea
Indexed Transactions
0 (1 on-chain, 1.5% indexed)
Contract Bytecode
3051 bytes
0x608060405234801561001057600080fd5b50600436106100bb576000357c01000000000000000000000000000000000000000000000000000000009004806393c0b0961161008357806393c0b09614610193578063bf7e214f1461019b578063d4ee1d90146101a3578063dc674bbb146101ab578063f2fde38b146101d9576100bb565b8063078d3b79146100c05780632e4c697f1461010a57806379ba50971461013f5780637a9e5e4b146101495780638da5cb5b1461016f575b600080fd5b6100f6600480360360608110156100d657600080fd5b50600160a060020a038135811691602081013590911690604001356101ff565b604080519115158252519081900360200190f35b61012d6004803603604081101561012057600080fd5b50803590602001356104cc565b60408051918252519081900360200190f35b610147610531565b005b6101476004803603602081101561015f57600080fd5b5035600160a060020a03166105f0565b6101776106a8565b60408051600160a060020a039092168252519081900360200190f35b6101476106b7565b610177610762565b610177610771565b610147600480360360408110156101c157600080fd5b50600160a060020a0381358116916020013516610780565b610147600480360360208110156101ef57600080fd5b5035600160a060020a031661089e565b600082600160a060020a0381161515610262576040805160e560020a62461bcd02815260206004820152601e60248201527f56616c6964416464726573733a206164647265737320696e76616c69642e0000604482015290519081900360640190fd5b61028d336000357bffffffffffffffffffffffffffffffffffffffffffffffffffffffff191661097c565b15156102e3576040805160e560020a62461bcd02815260206004820152601460248201527f64732d617574682d756e617574686f72697a6564000000000000000000000000604482015290519081900360640190fd5b600085600160a060020a03166370a08231866040518263ffffffff167c01000000000000000000000000000000000000000000000000000000000281526004018082600160a060020a0316600160a060020a0316815260200191505060206040518083038186803b15801561035757600080fd5b505afa15801561036b573d6000803e3d6000fd5b505050506040513d602081101561038157600080fd5b5051604080517fa9059cbb000000000000000000000000000000000000000000000000000000008152600160a060020a0388811660048301526024820188905291519293509088169163a9059cbb916044808201926020929091908290030181600087803b1580156103f257600080fd5b505af1158015610406573d6000803e3d6000fd5b505050506040513d602081101561041c57600080fd5b5050604080517f70a08231000000000000000000000000000000000000000000000000000000008152600160a060020a038781166004830152915186926104b992908a16916370a0823191602480820192602092909190829003018186803b15801561048757600080fd5b505afa15801561049b573d6000803e3d6000fd5b505050506040513d60208110156104b157600080fd5b505183610a93565b146104c057fe5b50600195945050505050565b60008115156104dd5750600161052b565b81600114156104ed57508161052b565b821580156104fa57508115155b156105075750600061052b565b8260015b838110156105275761051d8286610aee565b915060010161050b565b5090505b92915050565b600254600160a060020a0316331461057d5760405160e560020a62461bcd028152600401808060200182810382526028815260200180610b766028913960400191505060405180910390fd5b600254600154604051600160a060020a0392831692909116907f343765429aea5a34b3ff6a3785a98a5abb2597aca87bfbb58632c173d585373a90600090a3600280546001805473ffffffffffffffffffffffffffffffffffffffff19908116600160a060020a03841617909155169055565b6105f933610b61565b151561064f576040805160e560020a62461bcd02815260206004820152601160248201527f64732d617574682d6e6f6e2d6f776e6572000000000000000000000000000000604482015290519081900360640190fd5b6000805473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a03838116919091178083556040519116917f1abebea81bfa2637f28358c371278fb15ede7ea8dd28d2e03b112ff6d936ada491a250565b600154600160a060020a031681565b6106c033610b61565b1515610716576040805160e560020a62461bcd02815260206004820152601160248201527f64732d617574682d6e6f6e2d6f776e6572000000000000000000000000000000604482015290519081900360640190fd5b6001805473ffffffffffffffffffffffffffffffffffffffff1916905560405160009033907f343765429aea5a34b3ff6a3785a98a5abb2597aca87bfbb58632c173d585373a908390a3565b600054600160a060020a031681565b600254600160a060020a031681565b6107ab336000357bffffffffffffffffffffffffffffffffffffffffffffffffffffffff191661097c565b1515610801576040805160e560020a62461bcd02815260206004820152601460248201527f64732d617574682d756e617574686f72697a6564000000000000000000000000604482015290519081900360640190fd5b604080517f095ea7b3000000000000000000000000000000000000000000000000000000008152600160a060020a038381166004830152600019602483015291519184169163095ea7b3916044808201926020929091908290030181600087803b15801561086e57600080fd5b505af1158015610882573d6000803e3d6000fd5b505050506040513d602081101561089857600080fd5b50505050565b6108a733610b61565b15156108fd576040805160e560020a62461bcd02815260206004820152601160248201527f64732d617574682d6e6f6e2d6f776e6572000000000000000000000000000000604482015290519081900360640190fd5b600154600160a060020a038281169116141561094d5760405160e560020a62461bcd028152600401808060200182810382526022815260200180610b9e6022913960400191505060405180910390fd5b6002805473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a0392909216919091179055565b6000600160a060020a0383163014156109975750600161052b565b600154600160a060020a03848116911614156109b55750600161052b565b600054600160a060020a031615156109cf5750600061052b565b600054604080517fb7009613000000000000000000000000000000000000000000000000000000008152600160a060020a0386811660048301523060248301527bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19861660448301529151919092169163b7009613916064808301926020929190829003018186803b158015610a6057600080fd5b505afa158015610a74573d6000803e3d6000fd5b505050506040513d6020811015610a8a57600080fd5b5051905061052b565b8082038281111561052b576040805160e560020a62461bcd02815260206004820152601560248201527f64732d6d6174682d7375622d756e646572666c6f770000000000000000000000604482015290519081900360640190fd5b6000811580610b0b575050808202828282811515610b0857fe5b04145b151561052b576040805160e560020a62461bcd02815260206004820152601460248201527f64732d6d6174682d6d756c2d6f766572666c6f77000000000000000000000000604482015290519081900360640190fd5b600154600160a060020a039081169116149056fe4163636570744f776e6572736869703a206f6e6c79206e6577206f776e657220646f20746869732e5472616e736665724f776e6572736869703a207468652073616d65206f776e65722ea165627a7a72305820880e155dfaaa8296e64672312c50cfca7594d27a22603b1fd7695944f0b5cec00029
Verified Source Code Partial Match
Compiler: v0.5.2+commit.1df8f40c
EVM: byzantium
Optimization: Yes (200 runs)
DFCollateral.sol 163 lines
pragma solidity ^0.5.2;
contract IERC20Token {
function balanceOf(address _owner) public view returns (uint);
function allowance(address _owner, address _spender) public view returns (uint);
function transfer(address _to, uint _value) public returns (bool success);
function transferFrom(address _from, address _to, uint _value) public returns (bool success);
function approve(address _spender, uint _value) public returns (bool success);
function totalSupply() public view returns (uint);
}
contract Utils {
modifier validAddress(address _address) {
require(_address != address(0), "ValidAddress: address invalid.");
_;
}
}
contract DSAuthority {
function canCall(
address src, address dst, bytes4 sig
) public view returns (bool);
}
contract DSAuthEvents {
event LogSetAuthority (address indexed authority);
event LogSetOwner (address indexed owner);
event OwnerUpdate (address indexed owner, address indexed newOwner);
}
contract DSAuth is DSAuthEvents {
DSAuthority public authority;
address public owner;
address public newOwner;
constructor() public {
owner = msg.sender;
emit LogSetOwner(msg.sender);
}
// Warning: you should absolutely sure you want to give up authority!!!
function disableOwnership() public onlyOwner {
owner = address(0);
emit OwnerUpdate(msg.sender, owner);
}
function transferOwnership(address newOwner_) public onlyOwner {
require(newOwner_ != owner, "TransferOwnership: the same owner.");
newOwner = newOwner_;
}
function acceptOwnership() public {
require(msg.sender == newOwner, "AcceptOwnership: only new owner do this.");
emit OwnerUpdate(owner, newOwner);
owner = newOwner;
newOwner = address(0x0);
}
///[snow] guard is Authority who inherit DSAuth.
function setAuthority(DSAuthority authority_)
public
onlyOwner
{
authority = authority_;
emit LogSetAuthority(address(authority));
}
modifier onlyOwner {
require(isOwner(msg.sender), "ds-auth-non-owner");
_;
}
function isOwner(address src) internal view returns (bool) {
return bool(src == owner);
}
modifier auth {
require(isAuthorized(msg.sender, msg.sig), "ds-auth-unauthorized");
_;
}
function isAuthorized(address src, bytes4 sig) internal view returns (bool) {
if (src == address(this)) {
return true;
} else if (src == owner) {
return true;
} else if (authority == DSAuthority(0)) {
return false;
} else {
return authority.canCall(src, address(this), sig);
}
}
}
contract DSMath {
function add(uint x, uint y) internal pure returns (uint z) {
require((z = x + y) >= x, "ds-math-add-overflow");
}
function sub(uint x, uint y) internal pure returns (uint z) {
require((z = x - y) <= x, "ds-math-sub-underflow");
}
function mul(uint x, uint y) internal pure returns (uint z) {
require(y == 0 || (z = x * y) / y == x, "ds-math-mul-overflow");
}
function div(uint x, uint y) internal pure returns (uint z) {
require(y > 0, "ds-math-div-overflow");
z = x / y;
}
function min(uint x, uint y) internal pure returns (uint z) {
return x <= y ? x : y;
}
function max(uint x, uint y) internal pure returns (uint z) {
return x >= y ? x : y;
}
uint constant WAD = 10 ** 18;
function wdiv(uint x, uint y) internal pure returns (uint z) {
z = add(mul(x, WAD), y / 2) / y;
}
/**
* @dev x to the power of y power(base, exponent)
*/
function pow(uint256 base, uint256 exponent) public pure returns (uint256) {
if (exponent == 0) {
return 1;
}
else if (exponent == 1) {
return base;
}
else if (base == 0 && exponent != 0) {
return 0;
}
else {
uint256 z = base;
for (uint256 i = 1; i < exponent; i++)
z = mul(z, base);
return z;
}
}
}
contract DFCollateral is DSMath, DSAuth, Utils {
function transferOut(address _tokenID, address _to, uint _amount)
public
validAddress(_to)
auth
returns (bool)
{
uint _balance = IERC20Token(_tokenID).balanceOf(_to);
IERC20Token(_tokenID).transfer(_to, _amount);
assert(sub(IERC20Token(_tokenID).balanceOf(_to), _balance) == _amount);
return true;
}
function approveToEngine(address _tokenIdx, address _engineAddress) public auth {
IERC20Token(_tokenIdx).approve(_engineAddress, uint(-1));
}
}
Read Contract
authority 0xbf7e214f → address
newOwner 0xd4ee1d90 → address
owner 0x8da5cb5b → address
pow 0x2e4c697f → uint256
Write Contract 6 functions
These functions modify contract state and require a wallet transaction to execute.
acceptOwnership 0x79ba5097
No parameters
approveToEngine 0xdc674bbb
address _tokenIdx
address _engineAddress
disableOwnership 0x93c0b096
No parameters
setAuthority 0x7a9e5e4b
address authority_
transferOut 0x078d3b79
address _tokenID
address _to
uint256 _amount
returns: bool
transferOwnership 0xf2fde38b
address newOwner_
Recent Transactions
This address has 1 on-chain transactions, but only 1.5% of the chain is indexed. Transactions will appear as indexing progresses. View on Etherscan →