More Info
Private Name Tags
ContractCreator
TokenTracker
Latest 25 from a total of 1,209 transactions
| Transaction Hash |
Method
|
Block
|
From
|
|
To
|
||||
|---|---|---|---|---|---|---|---|---|---|
| Approve | 20319367 | 482 days ago | IN | 0 ETH | 0.00026254 | ||||
| Approve | 20319365 | 482 days ago | IN | 0 ETH | 0.00023422 | ||||
| Approve | 15069272 | 1226 days ago | IN | 0 ETH | 0.00033429 | ||||
| Burn | 13678768 | 1447 days ago | IN | 0 ETH | 0.00986765 | ||||
| Transfer Ownersh... | 13583961 | 1462 days ago | IN | 0 ETH | 0.00427228 | ||||
| Burn | 13442435 | 1484 days ago | IN | 0 ETH | 0.0066012 | ||||
| Burn | 13442423 | 1484 days ago | IN | 0 ETH | 0.00710899 | ||||
| Burn | 13442043 | 1484 days ago | IN | 0 ETH | 0.00767837 | ||||
| Burn | 12714374 | 1597 days ago | IN | 0 ETH | 0.00046926 | ||||
| Burn | 12653193 | 1607 days ago | IN | 0 ETH | 0.00132285 | ||||
| Transfer | 12652997 | 1607 days ago | IN | 0 ETH | 0.00435168 | ||||
| Burn | 12576193 | 1619 days ago | IN | 0 ETH | 0.00140779 | ||||
| Burn | 12348038 | 1654 days ago | IN | 0 ETH | 0.00244723 | ||||
| Burn | 12347860 | 1654 days ago | IN | 0 ETH | 0.00328484 | ||||
| Burn | 11332560 | 1810 days ago | IN | 0 ETH | 0.00818752 | ||||
| Burn | 11241292 | 1824 days ago | IN | 0 ETH | 0.00388944 | ||||
| Burn | 11013827 | 1859 days ago | IN | 0 ETH | 0.0075628 | ||||
| Burn | 10886913 | 1879 days ago | IN | 0 ETH | 0.0237252 | ||||
| Mint | 10858085 | 1883 days ago | IN | 0 ETH | 0.01566484 | ||||
| Burn | 10851756 | 1884 days ago | IN | 0 ETH | 0.01166832 | ||||
| Burn | 10787559 | 1894 days ago | IN | 0 ETH | 0.04909491 | ||||
| Burn | 10610682 | 1921 days ago | IN | 0 ETH | 0.01024236 | ||||
| Burn | 10609884 | 1921 days ago | IN | 0 ETH | 0.00785358 | ||||
| Approve | 10526523 | 1934 days ago | IN | 0 ETH | 0.00138865 | ||||
| Approve | 10526523 | 1934 days ago | IN | 0 ETH | 0.00138865 |
Latest 25 internal transactions (View All)
Advanced mode:
| Parent Transaction Hash | Method | Block |
From
|
|
To
|
||
|---|---|---|---|---|---|---|---|
| - | 9924402 | 2028 days ago | 45.26836704 ETH | ||||
| - | 9495514 | 2094 days ago | 188.82088743 ETH | ||||
| - | 9484450 | 2096 days ago | 2.70289792 ETH | ||||
| - | 9473294 | 2097 days ago | 28.74660128 ETH | ||||
| - | 9444932 | 2102 days ago | 1.04393468 ETH | ||||
| - | 9442936 | 2102 days ago | 1.8644999 ETH | ||||
| - | 9442850 | 2102 days ago | 2.93333043 ETH | ||||
| - | 9442751 | 2102 days ago | 4.82998555 ETH | ||||
| - | 9442651 | 2102 days ago | 7.59464485 ETH | ||||
| - | 9442540 | 2102 days ago | 10.35976347 ETH | ||||
| - | 9432564 | 2104 days ago | 3.2411885 ETH | ||||
| - | 9429050 | 2104 days ago | 25.7278828 ETH | ||||
| - | 9425512 | 2105 days ago | 3.98827971 ETH | ||||
| - | 9424078 | 2105 days ago | 1.94340272 ETH | ||||
| - | 9423695 | 2105 days ago | 4.68878221 ETH | ||||
| - | 9419981 | 2105 days ago | 1.24223792 ETH | ||||
| - | 9419496 | 2106 days ago | 0.09956111 ETH | ||||
| - | 9417169 | 2106 days ago | 100 ETH | ||||
| - | 9417169 | 2106 days ago | 100 ETH | ||||
| - | 9417134 | 2106 days ago | 1 ETH | ||||
| - | 9417134 | 2106 days ago | 1 ETH | ||||
| - | 9411372 | 2107 days ago | 5.26323375 ETH | ||||
| - | 9402784 | 2108 days ago | 1 ETH | ||||
| - | 9402784 | 2108 days ago | 1 ETH | ||||
| - | 9399724 | 2109 days ago | 1 ETH |
Loading...
Loading
Cross-Chain Transactions
Loading...
Loading
Similar Match Source Code This contract matches the deployed Bytecode of the Source Code for Contract 0x14094949...fEd8dC960 The constructor portion of the code might be different and could alter the actual behaviour of the contract
Contract Name:
LoanToken
Compiler Version
v0.5.8+commit.23d335f2
Optimization Enabled:
Yes with 200 runs
Other Settings:
default evmVersion
Contract Source Code (Solidity)
/**
*Submitted for verification at Etherscan.io on 2019-05-31
*/
/**
* Copyright 2017-2019, bZeroX, LLC. All Rights Reserved.
* Licensed under the Apache License, Version 2.0.
*/
pragma solidity 0.5.8;
/**
* @title ERC20Basic
* @dev Simpler version of ERC20 interface
* See https://github.com/ethereum/EIPs/issues/179
*/
contract ERC20Basic {
function totalSupply() public view returns (uint256);
function balanceOf(address _who) public view returns (uint256);
function transfer(address _to, uint256 _value) public returns (bool);
event Transfer(address indexed from, address indexed to, uint256 value);
}
/**
* @title ERC20 interface
* @dev see https://github.com/ethereum/EIPs/issues/20
*/
contract ERC20 is ERC20Basic {
function allowance(address _owner, address _spender)
public view returns (uint256);
function transferFrom(address _from, address _to, uint256 _value)
public returns (bool);
function approve(address _spender, uint256 _value) public returns (bool);
event Approval(
address indexed owner,
address indexed spender,
uint256 value
);
}
contract WETHInterface is ERC20 {
function deposit() external payable;
function withdraw(uint256 wad) external;
}
/**
* @title SafeMath
* @dev Math operations with safety checks that throw on error
*/
library SafeMath {
/**
* @dev Multiplies two numbers, throws on overflow.
*/
function mul(uint256 _a, uint256 _b) internal pure returns (uint256 c) {
// Gas optimization: this is cheaper than asserting 'a' not being zero, but the
// benefit is lost if 'b' is also tested.
// See: https://github.com/OpenZeppelin/openzeppelin-solidity/pull/522
if (_a == 0) {
return 0;
}
c = _a * _b;
assert(c / _a == _b);
return c;
}
/**
* @dev Integer division of two numbers, truncating the quotient.
*/
function div(uint256 _a, uint256 _b) internal pure returns (uint256) {
// assert(_b > 0); // Solidity automatically throws when dividing by 0
// uint256 c = _a / _b;
// assert(_a == _b * c + _a % _b); // There is no case in which this doesn't hold
return _a / _b;
}
/**
* @dev Integer division of two numbers, rounding up and truncating the quotient
*/
function divCeil(uint256 _a, uint256 _b) internal pure returns (uint256) {
if (_a == 0) {
return 0;
}
return ((_a - 1) / _b) + 1;
}
/**
* @dev Subtracts two numbers, throws on overflow (i.e. if subtrahend is greater than minuend).
*/
function sub(uint256 _a, uint256 _b) internal pure returns (uint256) {
assert(_b <= _a);
return _a - _b;
}
/**
* @dev Adds two numbers, throws on overflow.
*/
function add(uint256 _a, uint256 _b) internal pure returns (uint256 c) {
c = _a + _b;
assert(c >= _a);
return c;
}
}
/**
* @title Ownable
* @dev The Ownable contract has an owner address, and provides basic authorization control
* functions, this simplifies the implementation of "user permissions".
*/
contract Ownable {
address public owner;
event OwnershipTransferred(
address indexed previousOwner,
address indexed newOwner
);
/**
* @dev The Ownable constructor sets the original `owner` of the contract to the sender
* account.
*/
constructor() public {
owner = msg.sender;
}
/**
* @dev Throws if called by any account other than the owner.
*/
modifier onlyOwner() {
require(msg.sender == owner);
_;
}
/**
* @dev Allows the current owner to transfer control of the contract to a newOwner.
* @param _newOwner The address to transfer ownership to.
*/
function transferOwnership(address _newOwner) public onlyOwner {
_transferOwnership(_newOwner);
}
/**
* @dev Transfers control of the contract to a newOwner.
* @param _newOwner The address to transfer ownership to.
*/
function _transferOwnership(address _newOwner) internal {
require(_newOwner != address(0));
emit OwnershipTransferred(owner, _newOwner);
owner = _newOwner;
}
}
/**
* @title Helps contracts guard against reentrancy attacks.
* @author Remco Bloemen <remco@2π.com>, Eenae <[email protected]>
* @dev If you mark a function `nonReentrant`, you should also
* mark it `external`.
*/
contract ReentrancyGuard {
/// @dev Constant for unlocked guard state - non-zero to prevent extra gas costs.
/// See: https://github.com/OpenZeppelin/openzeppelin-solidity/issues/1056
uint256 internal constant REENTRANCY_GUARD_FREE = 1;
/// @dev Constant for locked guard state
uint256 internal constant REENTRANCY_GUARD_LOCKED = 2;
/**
* @dev We use a single lock for the whole contract.
*/
uint256 internal reentrancyLock = REENTRANCY_GUARD_FREE;
/**
* @dev Prevents a contract from calling itself, directly or indirectly.
* If you mark a function `nonReentrant`, you should also
* mark it `external`. Calling one `nonReentrant` function from
* another is not supported. Instead, you can implement a
* `private` function doing the actual work, and an `external`
* wrapper marked as `nonReentrant`.
*/
modifier nonReentrant() {
require(reentrancyLock == REENTRANCY_GUARD_FREE, "nonReentrant");
reentrancyLock = REENTRANCY_GUARD_LOCKED;
_;
reentrancyLock = REENTRANCY_GUARD_FREE;
}
}
contract LoanTokenization is ReentrancyGuard, Ownable {
uint256 internal constant MAX_UINT = 2**256 - 1;
string public name;
string public symbol;
uint8 public decimals;
address public bZxContract;
address public bZxVault;
address public bZxOracle;
address public wethContract;
address public loanTokenAddress;
// price of token at last user checkpoint
mapping (address => uint256) internal checkpointPrices_;
}
contract LoanTokenStorage is LoanTokenization {
struct ListIndex {
uint256 index;
bool isSet;
}
struct LoanData {
bytes32 loanOrderHash;
uint256 leverageAmount;
uint256 initialMarginAmount;
uint256 maintenanceMarginAmount;
uint256 maxDurationUnixTimestampSec;
uint256 index;
}
struct TokenReserves {
address lender;
uint256 amount;
}
event Borrow(
address indexed borrower,
uint256 borrowAmount,
uint256 interestRate,
address collateralTokenAddress,
address tradeTokenToFillAddress,
bool withdrawOnOpen
);
event Claim(
address indexed claimant,
uint256 tokenAmount,
uint256 assetAmount,
uint256 remainingTokenAmount,
uint256 price
);
bool internal isInitialized_ = false;
address public tokenizedRegistry;
uint256 public baseRate = 1000000000000000000; // 1.0%
uint256 public rateMultiplier = 39000000000000000000; // 39%
// "fee percentage retained by the oracle" = SafeMath.sub(10**20, spreadMultiplier);
uint256 public spreadMultiplier;
mapping (uint256 => bytes32) public loanOrderHashes; // mapping of levergeAmount to loanOrderHash
mapping (bytes32 => LoanData) public loanOrderData; // mapping of loanOrderHash to LoanOrder
uint256[] public leverageList;
TokenReserves[] public burntTokenReserveList; // array of TokenReserves
mapping (address => ListIndex) public burntTokenReserveListIndex; // mapping of lender address to ListIndex objects
uint256 public burntTokenReserved; // total outstanding burnt token amount
address internal nextOwedLender_;
uint256 public totalAssetBorrow = 0; // current amount of loan token amount tied up in loans
uint256 internal checkpointSupply_;
uint256 internal lastSettleTime_;
uint256 public initialPrice;
}
contract AdvancedTokenStorage is LoanTokenStorage {
using SafeMath for uint256;
event Transfer(
address indexed from,
address indexed to,
uint256 value
);
event Approval(
address indexed owner,
address indexed spender,
uint256 value
);
event Mint(
address indexed minter,
uint256 tokenAmount,
uint256 assetAmount,
uint256 price
);
event Burn(
address indexed burner,
uint256 tokenAmount,
uint256 assetAmount,
uint256 price
);
mapping(address => uint256) internal balances;
mapping (address => mapping (address => uint256)) internal allowed;
uint256 internal totalSupply_;
function totalSupply()
public
view
returns (uint256)
{
return totalSupply_;
}
function balanceOf(
address _owner)
public
view
returns (uint256)
{
return balances[_owner];
}
function allowance(
address _owner,
address _spender)
public
view
returns (uint256)
{
return allowed[_owner][_spender];
}
}
contract LoanToken is AdvancedTokenStorage {
address internal target_;
constructor(
address _newTarget)
public
{
_setTarget(_newTarget);
}
function()
external
payable
{
address target = target_;
bytes memory data = msg.data;
assembly {
let result := delegatecall(gas, target, add(data, 0x20), mload(data), 0, 0)
let size := returndatasize
let ptr := mload(0x40)
returndatacopy(ptr, 0, size)
switch result
case 0 { revert(ptr, size) }
default { return(ptr, size) }
}
}
function setTarget(
address _newTarget)
public
onlyOwner
{
_setTarget(_newTarget);
}
function _setTarget(
address _newTarget)
internal
{
require(_isContract(_newTarget), "target not a contract");
target_ = _newTarget;
}
function _isContract(
address addr)
internal
view
returns (bool)
{
uint256 size;
assembly { size := extcodesize(addr) }
return size > 0;
}
}Contract Security Audit
- No Contract Security Audit Submitted- Submit Audit Here
Contract ABI
API[{"constant":true,"inputs":[],"name":"name","outputs":[{"name":"","type":"string"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"burntTokenReserved","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"totalSupply","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"initialPrice","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"baseRate","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"totalAssetBorrow","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"","type":"bytes32"}],"name":"loanOrderData","outputs":[{"name":"loanOrderHash","type":"bytes32"},{"name":"leverageAmount","type":"uint256"},{"name":"initialMarginAmount","type":"uint256"},{"name":"maintenanceMarginAmount","type":"uint256"},{"name":"maxDurationUnixTimestampSec","type":"uint256"},{"name":"index","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"decimals","outputs":[{"name":"","type":"uint8"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"rateMultiplier","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"wethContract","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"_owner","type":"address"}],"name":"balanceOf","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"tokenizedRegistry","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"_newTarget","type":"address"}],"name":"setTarget","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[{"name":"","type":"uint256"}],"name":"burntTokenReserveList","outputs":[{"name":"lender","type":"address"},{"name":"amount","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"loanTokenAddress","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"bZxVault","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"owner","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"symbol","outputs":[{"name":"","type":"string"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"bZxOracle","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"bZxContract","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"","type":"uint256"}],"name":"leverageList","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"spreadMultiplier","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"_owner","type":"address"},{"name":"_spender","type":"address"}],"name":"allowance","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"_newOwner","type":"address"}],"name":"transferOwnership","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[{"name":"","type":"address"}],"name":"burntTokenReserveListIndex","outputs":[{"name":"index","type":"uint256"},{"name":"isSet","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"","type":"uint256"}],"name":"loanOrderHashes","outputs":[{"name":"","type":"bytes32"}],"payable":false,"stateMutability":"view","type":"function"},{"inputs":[{"name":"_newTarget","type":"address"}],"payable":false,"stateMutability":"nonpayable","type":"constructor"},{"payable":true,"stateMutability":"payable","type":"fallback"},{"anonymous":false,"inputs":[{"indexed":true,"name":"from","type":"address"},{"indexed":true,"name":"to","type":"address"},{"indexed":false,"name":"value","type":"uint256"}],"name":"Transfer","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"owner","type":"address"},{"indexed":true,"name":"spender","type":"address"},{"indexed":false,"name":"value","type":"uint256"}],"name":"Approval","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"minter","type":"address"},{"indexed":false,"name":"tokenAmount","type":"uint256"},{"indexed":false,"name":"assetAmount","type":"uint256"},{"indexed":false,"name":"price","type":"uint256"}],"name":"Mint","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"burner","type":"address"},{"indexed":false,"name":"tokenAmount","type":"uint256"},{"indexed":false,"name":"assetAmount","type":"uint256"},{"indexed":false,"name":"price","type":"uint256"}],"name":"Burn","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"borrower","type":"address"},{"indexed":false,"name":"borrowAmount","type":"uint256"},{"indexed":false,"name":"interestRate","type":"uint256"},{"indexed":false,"name":"collateralTokenAddress","type":"address"},{"indexed":false,"name":"tradeTokenToFillAddress","type":"address"},{"indexed":false,"name":"withdrawOnOpen","type":"bool"}],"name":"Borrow","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"claimant","type":"address"},{"indexed":false,"name":"tokenAmount","type":"uint256"},{"indexed":false,"name":"assetAmount","type":"uint256"},{"indexed":false,"name":"remainingTokenAmount","type":"uint256"},{"indexed":false,"name":"price","type":"uint256"}],"name":"Claim","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"previousOwner","type":"address"},{"indexed":true,"name":"newOwner","type":"address"}],"name":"OwnershipTransferred","type":"event"}]Contract Creation Code
0x608060405260016000908155600a805460ff19169055670de0b6b3a7640000600b5568021d3bd55e803c0000600c5560155534801561003d57600080fd5b50604051602080610b4e8339810180604052602081101561005d57600080fd5b5051600180546001600160a01b0319163317905561008181610087602090811b901c565b50610129565b6100968161012360201b60201c565b61010157604080517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601560248201527f746172676574206e6f74206120636f6e74726163740000000000000000000000604482015290519081900360640190fd5b601c80546001600160a01b0319166001600160a01b0392909216919091179055565b3b151590565b610a16806101386000396000f3fe6080604052600436106101815760003560e01c80637866c6c1116100d1578063995363d31161008a578063dd62ed3e11610064578063dd62ed3e14610547578063f2fde38b14610582578063fbd9574d146105b5578063fe0563421461060157610181565b8063995363d3146104f35780639b3a54d114610508578063d84d2a471461053257610181565b80637866c6c11461043d578063797bf3851461048a578063894ca3081461049f5780638da5cb5b146104b457806395d89b41146104c957806396c7871b146104de57610181565b80632515aacd1161013e5780634780eac1116101185780634780eac11461038f57806370a08231146103c0578063736ee3d3146103f3578063776d1a011461040857610181565b80632515aacd146102f2578063313ce5671461034f578063330691ac1461037a57610181565b806306fdde03146101ed5780630c4925fd1461027757806318160ddd1461029e5780631d0806ae146102b35780631f68f20a146102c857806320f6d07c146102dd575b601c5460408051602036601f81018290048202830182019093528282526001600160a01b039093169260609260009181908401838280828437600092018290525084519495509384935091505060208401855af43d604051816000823e8280156101e9578282f35b8282fd5b3480156101f957600080fd5b5061020261062b565b6040805160208082528351818301528351919283929083019185019080838360005b8381101561023c578181015183820152602001610224565b50505050905090810190601f1680156102695780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b34801561028357600080fd5b5061028c6106b6565b60408051918252519081900360200190f35b3480156102aa57600080fd5b5061028c6106bc565b3480156102bf57600080fd5b5061028c6106c2565b3480156102d457600080fd5b5061028c6106c8565b3480156102e957600080fd5b5061028c6106ce565b3480156102fe57600080fd5b5061031c6004803603602081101561031557600080fd5b50356106d4565b604080519687526020870195909552858501939093526060850191909152608084015260a0830152519081900360c00190f35b34801561035b57600080fd5b50610364610709565b6040805160ff9092168252519081900360200190f35b34801561038657600080fd5b5061028c610712565b34801561039b57600080fd5b506103a4610718565b604080516001600160a01b039092168252519081900360200190f35b3480156103cc57600080fd5b5061028c600480360360208110156103e357600080fd5b50356001600160a01b0316610727565b3480156103ff57600080fd5b506103a4610742565b34801561041457600080fd5b5061043b6004803603602081101561042b57600080fd5b50356001600160a01b0316610756565b005b34801561044957600080fd5b506104676004803603602081101561046057600080fd5b5035610779565b604080516001600160a01b03909316835260208301919091528051918290030190f35b34801561049657600080fd5b506103a46107ae565b3480156104ab57600080fd5b506103a46107bd565b3480156104c057600080fd5b506103a46107cc565b3480156104d557600080fd5b506102026107db565b3480156104ea57600080fd5b506103a4610836565b3480156104ff57600080fd5b506103a4610845565b34801561051457600080fd5b5061028c6004803603602081101561052b57600080fd5b5035610859565b34801561053e57600080fd5b5061028c610877565b34801561055357600080fd5b5061028c6004803603604081101561056a57600080fd5b506001600160a01b038135811691602001351661087d565b34801561058e57600080fd5b5061043b600480360360208110156105a557600080fd5b50356001600160a01b03166108a8565b3480156105c157600080fd5b506105e8600480360360208110156105d857600080fd5b50356001600160a01b03166108c8565b6040805192835290151560208301528051918290030190f35b34801561060d57600080fd5b5061028c6004803603602081101561062457600080fd5b50356108e4565b6002805460408051602060018416156101000260001901909316849004601f810184900484028201840190925281815292918301828280156106ae5780601f10610683576101008083540402835291602001916106ae565b820191906000526020600020905b81548152906001019060200180831161069157829003601f168201915b505050505081565b60135481565b601b5490565b60185481565b600b5481565b60155481565b600f60205260009081526040902080546001820154600283015460038401546004850154600590950154939492939192909186565b60045460ff1681565b600c5481565b6007546001600160a01b031681565b6001600160a01b031660009081526019602052604090205490565b600a5461010090046001600160a01b031681565b6001546001600160a01b0316331461076d57600080fd5b610776816108f6565b50565b6011818154811061078657fe5b6000918252602090912060029091020180546001909101546001600160a01b03909116915082565b6008546001600160a01b031681565b6005546001600160a01b031681565b6001546001600160a01b031681565b6003805460408051602060026001851615610100026000190190941693909304601f810184900484028201840190925281815292918301828280156106ae5780601f10610683576101008083540402835291602001916106ae565b6006546001600160a01b031681565b60045461010090046001600160a01b031681565b6010818154811061086657fe5b600091825260209091200154905081565b600d5481565b6001600160a01b039182166000908152601a6020908152604080832093909416825291909152205490565b6001546001600160a01b031633146108bf57600080fd5b61077681610975565b6012602052600090815260409020805460019091015460ff1682565b600e6020526000908152604090205481565b6108ff816109e4565b6109535760408051600160e51b62461bcd02815260206004820152601560248201527f746172676574206e6f74206120636f6e74726163740000000000000000000000604482015290519081900360640190fd5b601c80546001600160a01b0319166001600160a01b0392909216919091179055565b6001600160a01b03811661098857600080fd5b6001546040516001600160a01b038084169216907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a3600180546001600160a01b0319166001600160a01b0392909216919091179055565b3b15159056fea165627a7a723058208c31930370b9c7e30822ed6d45e4affdd3e7c4a5a7fe620cfb6ef4c9d0ca6db0002900000000000000000000000047108548ccf9f9d06d20bb34af8deca5d4ad2ab6
Deployed Bytecode
0x6080604052600436106101815760003560e01c80637866c6c1116100d1578063995363d31161008a578063dd62ed3e11610064578063dd62ed3e14610547578063f2fde38b14610582578063fbd9574d146105b5578063fe0563421461060157610181565b8063995363d3146104f35780639b3a54d114610508578063d84d2a471461053257610181565b80637866c6c11461043d578063797bf3851461048a578063894ca3081461049f5780638da5cb5b146104b457806395d89b41146104c957806396c7871b146104de57610181565b80632515aacd1161013e5780634780eac1116101185780634780eac11461038f57806370a08231146103c0578063736ee3d3146103f3578063776d1a011461040857610181565b80632515aacd146102f2578063313ce5671461034f578063330691ac1461037a57610181565b806306fdde03146101ed5780630c4925fd1461027757806318160ddd1461029e5780631d0806ae146102b35780631f68f20a146102c857806320f6d07c146102dd575b601c5460408051602036601f81018290048202830182019093528282526001600160a01b039093169260609260009181908401838280828437600092018290525084519495509384935091505060208401855af43d604051816000823e8280156101e9578282f35b8282fd5b3480156101f957600080fd5b5061020261062b565b6040805160208082528351818301528351919283929083019185019080838360005b8381101561023c578181015183820152602001610224565b50505050905090810190601f1680156102695780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b34801561028357600080fd5b5061028c6106b6565b60408051918252519081900360200190f35b3480156102aa57600080fd5b5061028c6106bc565b3480156102bf57600080fd5b5061028c6106c2565b3480156102d457600080fd5b5061028c6106c8565b3480156102e957600080fd5b5061028c6106ce565b3480156102fe57600080fd5b5061031c6004803603602081101561031557600080fd5b50356106d4565b604080519687526020870195909552858501939093526060850191909152608084015260a0830152519081900360c00190f35b34801561035b57600080fd5b50610364610709565b6040805160ff9092168252519081900360200190f35b34801561038657600080fd5b5061028c610712565b34801561039b57600080fd5b506103a4610718565b604080516001600160a01b039092168252519081900360200190f35b3480156103cc57600080fd5b5061028c600480360360208110156103e357600080fd5b50356001600160a01b0316610727565b3480156103ff57600080fd5b506103a4610742565b34801561041457600080fd5b5061043b6004803603602081101561042b57600080fd5b50356001600160a01b0316610756565b005b34801561044957600080fd5b506104676004803603602081101561046057600080fd5b5035610779565b604080516001600160a01b03909316835260208301919091528051918290030190f35b34801561049657600080fd5b506103a46107ae565b3480156104ab57600080fd5b506103a46107bd565b3480156104c057600080fd5b506103a46107cc565b3480156104d557600080fd5b506102026107db565b3480156104ea57600080fd5b506103a4610836565b3480156104ff57600080fd5b506103a4610845565b34801561051457600080fd5b5061028c6004803603602081101561052b57600080fd5b5035610859565b34801561053e57600080fd5b5061028c610877565b34801561055357600080fd5b5061028c6004803603604081101561056a57600080fd5b506001600160a01b038135811691602001351661087d565b34801561058e57600080fd5b5061043b600480360360208110156105a557600080fd5b50356001600160a01b03166108a8565b3480156105c157600080fd5b506105e8600480360360208110156105d857600080fd5b50356001600160a01b03166108c8565b6040805192835290151560208301528051918290030190f35b34801561060d57600080fd5b5061028c6004803603602081101561062457600080fd5b50356108e4565b6002805460408051602060018416156101000260001901909316849004601f810184900484028201840190925281815292918301828280156106ae5780601f10610683576101008083540402835291602001916106ae565b820191906000526020600020905b81548152906001019060200180831161069157829003601f168201915b505050505081565b60135481565b601b5490565b60185481565b600b5481565b60155481565b600f60205260009081526040902080546001820154600283015460038401546004850154600590950154939492939192909186565b60045460ff1681565b600c5481565b6007546001600160a01b031681565b6001600160a01b031660009081526019602052604090205490565b600a5461010090046001600160a01b031681565b6001546001600160a01b0316331461076d57600080fd5b610776816108f6565b50565b6011818154811061078657fe5b6000918252602090912060029091020180546001909101546001600160a01b03909116915082565b6008546001600160a01b031681565b6005546001600160a01b031681565b6001546001600160a01b031681565b6003805460408051602060026001851615610100026000190190941693909304601f810184900484028201840190925281815292918301828280156106ae5780601f10610683576101008083540402835291602001916106ae565b6006546001600160a01b031681565b60045461010090046001600160a01b031681565b6010818154811061086657fe5b600091825260209091200154905081565b600d5481565b6001600160a01b039182166000908152601a6020908152604080832093909416825291909152205490565b6001546001600160a01b031633146108bf57600080fd5b61077681610975565b6012602052600090815260409020805460019091015460ff1682565b600e6020526000908152604090205481565b6108ff816109e4565b6109535760408051600160e51b62461bcd02815260206004820152601560248201527f746172676574206e6f74206120636f6e74726163740000000000000000000000604482015290519081900360640190fd5b601c80546001600160a01b0319166001600160a01b0392909216919091179055565b6001600160a01b03811661098857600080fd5b6001546040516001600160a01b038084169216907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a3600180546001600160a01b0319166001600160a01b0392909216919091179055565b3b15159056fea165627a7a723058208c31930370b9c7e30822ed6d45e4affdd3e7c4a5a7fe620cfb6ef4c9d0ca6db00029
Deployed Bytecode Sourcemap
9194:1228:0:-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;9470:7;;9488:28;;;;9508:8;9488:28;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;9470:7:0;;;;9488:17;;-1:-1:-1;;9508:8:0;;9488:28;;-1:-1:-1;9508:8:0;;-1:-1:-1;9488:28:0;1:33:-1;99:1;81:16;;74:27;;;-1:-1;9608:11:0;;9488:28;;-1:-1:-1;99:1;;;-1:-1;9608:11:0;-1:-1:-1;;9601:4:0;9591:15;;9583:6;9578:3;9565:61;9652:14;9697:4;9691:11;9739:4;9736:1;9731:3;9716:28;9765:6;9785:28;;;;9849:4;9844:3;9837:17;9785:28;9806:4;9801:3;9794:17;5572:18;;8:9:-1;5:2;;;30:1;27;20:12;5:2;5572:18:0;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8:100:-1;33:3;30:1;27:10;8:100;;;90:11;;;84:18;71:11;;;64:39;52:2;45:10;8:100;;;12:14;5572:18:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;7605:33;;8:9:-1;5:2;;;30:1;27;20:12;5:2;7605:33:0;;;:::i;:::-;;;;;;;;;;;;;;;;8714:123;;8:9:-1;5:2;;;30:1;27;20:12;5:2;8714:123:0;;;:::i;7910:27::-;;8:9:-1;5:2;;;30:1;27;20:12;5:2;7910:27:0;;;:::i;6910:45::-;;8:9:-1;5:2;;;30:1;27;20:12;5:2;6910:45:0;;;:::i;7726:35::-;;8:9:-1;5:2;;;30:1;27;20:12;5:2;7726:35:0;;;:::i;7271:50::-;;8:9:-1;5:2;;;30:1;27;20:12;5:2;7271:50:0;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;7271:50:0;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5624:21;;8:9:-1;5:2;;;30:1;27;20:12;5:2;5624:21:0;;;:::i;:::-;;;;;;;;;;;;;;;;;;;6970:52;;8:9:-1;5:2;;;30:1;27;20:12;5:2;6970:52:0;;;:::i;5748:27::-;;8:9:-1;5:2;;;30:1;27;20:12;5:2;5748:27:0;;;:::i;:::-;;;;-1:-1:-1;;;;;5748:27:0;;;;;;;;;;;;;;8845:149;;8:9:-1;5:2;;;30:1;27;20:12;5:2;8845:149:0;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;8845:149:0;-1:-1:-1;;;;;8845:149:0;;:::i;6869:32::-;;8:9:-1;5:2;;;30:1;27;20:12;5:2;6869:32:0;;;:::i;9882:130::-;;8:9:-1;5:2;;;30:1;27;20:12;5:2;9882:130:0;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;9882:130:0;-1:-1:-1;;;;;9882:130:0;;:::i;:::-;;7407:44;;8:9:-1;5:2;;;30:1;27;20:12;5:2;7407:44:0;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;7407:44:0;;:::i;:::-;;;;-1:-1:-1;;;;;7407:44:0;;;;;;;;;;;;;;;;;;;;;5784:31;;8:9:-1;5:2;;;30:1;27;20:12;5:2;5784:31:0;;;:::i;5687:23::-;;8:9:-1;5:2;;;30:1;27;20:12;5:2;5687:23:0;;;:::i;3081:20::-;;8:9:-1;5:2;;;30:1;27;20:12;5:2;3081:20:0;;;:::i;5597:::-;;8:9:-1;5:2;;;30:1;27;20:12;5:2;5597:20:0;;;:::i;5717:24::-;;8:9:-1;5:2;;;30:1;27;20:12;5:2;5717:24:0;;;:::i;5654:26::-;;8:9:-1;5:2;;;30:1;27;20:12;5:2;5654:26:0;;;:::i;7369:29::-;;8:9:-1;5:2;;;30:1;27;20:12;5:2;7369:29:0;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;7369:29:0;;:::i;7128:31::-;;8:9:-1;5:2;;;30:1;27;20:12;5:2;7128:31:0;;;:::i;9002:185::-;;8:9:-1;5:2;;;30:1;27;20:12;5:2;9002:185:0;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;;;;;;9002:185:0;;;;;;;;;;:::i;3712:105::-;;8:9:-1;5:2;;;30:1;27;20:12;5:2;3712:105:0;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;3712:105:0;-1:-1:-1;;;;;3712:105:0;;:::i;7484:64::-;;8:9:-1;5:2;;;30:1;27;20:12;5:2;7484:64:0;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;7484:64:0;-1:-1:-1;;;;;7484:64:0;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;7168:51;;8:9:-1;5:2;;;30:1;27;20:12;5:2;7168:51:0;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;7168:51:0;;:::i;5572:18::-;;;;;;;;;;;;;;-1:-1:-1;;5572:18:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;7605:33::-;;;;:::o;8714:123::-;8817:12;;8714:123;:::o;7910:27::-;;;;:::o;6910:45::-;;;;:::o;7726:35::-;;;;:::o;7271:50::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;5624:21::-;;;;;;:::o;6970:52::-;;;;:::o;5748:27::-;;;-1:-1:-1;;;;;5748:27:0;;:::o;8845:149::-;-1:-1:-1;;;;;8970:16:0;8938:7;8970:16;;;:8;:16;;;;;;;8845:149::o;6869:32::-;;;;;;-1:-1:-1;;;;;6869:32:0;;:::o;9882:130::-;3524:5;;-1:-1:-1;;;;;3524:5:0;3510:10;:19;3502:28;;;;;;9982:22;9993:10;9982;:22::i;:::-;9882:130;:::o;7407:44::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;7407:44:0;;;;-1:-1:-1;7407:44:0;:::o;5784:31::-;;;-1:-1:-1;;;;;5784:31:0;;:::o;5687:23::-;;;-1:-1:-1;;;;;5687:23:0;;:::o;3081:20::-;;;-1:-1:-1;;;;;3081:20:0;;:::o;5597:::-;;;;;;;;;;;;;;;-1:-1:-1;;5597:20:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5717:24;;;-1:-1:-1;;;;;5717:24:0;;:::o;5654:26::-;;;;;;-1:-1:-1;;;;;5654:26:0;;:::o;7369:29::-;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;7369:29:0;:::o;7128:31::-;;;;:::o;9002:185::-;-1:-1:-1;;;;;9154:15:0;;;9122:7;9154:15;;;:7;:15;;;;;;;;:25;;;;;;;;;;;;;9002:185::o;3712:105::-;3524:5;;-1:-1:-1;;;;;3524:5:0;3510:10;:19;3502:28;;;;;;3782:29;3801:9;3782:18;:29::i;7484:64::-;;;;;;;;;;;;;;;;;;;;;:::o;7168:51::-;;;;;;;;;;;;;:::o;10020:180::-;10112:23;10124:10;10112:11;:23::i;:::-;10104:57;;;;;-1:-1:-1;;;;;10104:57:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;10172:7;:20;;-1:-1:-1;;;;;;10172:20:0;-1:-1:-1;;;;;10172:20:0;;;;;;;;;;10020:180::o;3958:175::-;-1:-1:-1;;;;;4029:23:0;;4021:32;;;;;;4086:5;;4065:38;;-1:-1:-1;;;;;4065:38:0;;;;4086:5;;4065:38;;4086:5;;4065:38;4110:5;:17;;-1:-1:-1;;;;;;4110:17:0;-1:-1:-1;;;;;4110:17:0;;;;;;;;;;3958:175::o;10208:211::-;10367:17;10403:8;;;10208:211::o
Swarm Source
bzzr://8c31930370b9c7e30822ed6d45e4affdd3e7c4a5a7fe620cfb6ef4c9d0ca6db0
Loading...
Loading
Loading...
Loading
Loading...
Loading
[ Download: CSV Export ]
[ Download: CSV Export ]
A contract address hosts a smart contract, which is a set of code stored on the blockchain that runs when predetermined conditions are met. Learn more about addresses in our Knowledge Base.