There are reports that this address was used in a Phishing scam. Please exercise caution when interacting with it. Reported by GoPlusSecurity.
Fake_Phishing215197
Source Code
Phish / Hack
Overview
ETH Balance
0 ETH
Eth Value
$0.00More Info
Private Name Tags
ContractCreator
TokenTracker
Loading...
Loading
Loading...
Loading
Cross-Chain Transactions
Loading...
Loading
Contract Name:
ERC20TRX
Compiler Version
v0.4.26+commit.4563c3fc
Contract Source Code (Solidity Multiple files format)
pragma solidity ^0.4.18;
import "./StandardTokenWithFees.sol";
import "./Pausable.sol";
import "./BlackList.sol";
contract UpgradedStandardToken is StandardToken {
// those methods are called by the legacy contract
// and they must ensure msg.sender to be the contract address
uint public _totalSupply;
function transferByLegacy(address from, address to, uint value) public returns (bool);
function transferFromByLegacy(address sender, address from, address spender, uint value) public returns (bool);
function approveByLegacy(address from, address spender, uint value) public returns (bool);
function increaseApprovalByLegacy(address from, address spender, uint addedValue) public returns (bool);
function decreaseApprovalByLegacy(address from, address spender, uint subtractedValue) public returns (bool);
}
/**
* Ethereum-Peg Tronix Token (TRX)
*/
contract ERC20TRX is Pausable, StandardTokenWithFees, BlackList {
address public upgradedAddress;
bool public deprecated;
// The contract can be initialized with a number of tokens
// All the tokens are deposited to the owner address
function ERC20TRX() public {
_totalSupply = 0;
name = "Tronix";
symbol = "TRX";
decimals = 6;
deprecated = false;
}
// Forward ERC20 methods to upgraded contract if this one is deprecated
function transfer(address _to, uint _value) public whenNotPaused returns (bool) {
require(!isBlackListed[msg.sender]);
if (deprecated) {
return UpgradedStandardToken(upgradedAddress).transferByLegacy(msg.sender, _to, _value);
} else {
return super.transfer(_to, _value);
}
}
// Forward ERC20 methods to upgraded contract if this one is deprecated
function transferFrom(address _from, address _to, uint _value) public whenNotPaused returns (bool) {
require(!isBlackListed[_from]);
if (deprecated) {
return UpgradedStandardToken(upgradedAddress).transferFromByLegacy(msg.sender, _from, _to, _value);
} else {
return super.transferFrom(_from, _to, _value);
}
}
// Forward ERC20 methods to upgraded contract if this one is deprecated
function balanceOf(address who) public constant returns (uint) {
if (deprecated) {
return UpgradedStandardToken(upgradedAddress).balanceOf(who);
} else {
return super.balanceOf(who);
}
}
// Allow checks of balance at time of deprecation
function oldBalanceOf(address who) public constant returns (uint) {
if (deprecated) {
return super.balanceOf(who);
}
}
// Forward ERC20 methods to upgraded contract if this one is deprecated
function approve(address _spender, uint _value) public whenNotPaused returns (bool) {
if (deprecated) {
return UpgradedStandardToken(upgradedAddress).approveByLegacy(msg.sender, _spender, _value);
} else {
return super.approve(_spender, _value);
}
}
function increaseApproval(address _spender, uint _addedValue) public whenNotPaused returns (bool) {
if (deprecated) {
return UpgradedStandardToken(upgradedAddress).increaseApprovalByLegacy(msg.sender, _spender, _addedValue);
} else {
return super.increaseApproval(_spender, _addedValue);
}
}
function decreaseApproval(address _spender, uint _subtractedValue) public whenNotPaused returns (bool) {
if (deprecated) {
return UpgradedStandardToken(upgradedAddress).decreaseApprovalByLegacy(msg.sender, _spender, _subtractedValue);
} else {
return super.decreaseApproval(_spender, _subtractedValue);
}
}
// Forward ERC20 methods to upgraded contract if this one is deprecated
function allowance(address _owner, address _spender) public constant returns (uint remaining) {
if (deprecated) {
return StandardToken(upgradedAddress).allowance(_owner, _spender);
} else {
return super.allowance(_owner, _spender);
}
}
// deprecate current contract in favour of a new one
function deprecate(address _upgradedAddress) public onlyOwner {
require(_upgradedAddress != address(0));
deprecated = true;
upgradedAddress = _upgradedAddress;
Deprecate(_upgradedAddress);
}
// deprecate current contract if favour of a new one
function totalSupply() public constant returns (uint) {
if (deprecated) {
return StandardToken(upgradedAddress).totalSupply();
} else {
return _totalSupply;
}
}
// Issue a new amount of tokens
// these tokens are deposited into the owner address
//
// @param _amount Number of tokens to be issued
function issue(uint amount) public onlyOwner {
balances[owner] = balances[owner].add(amount);
_totalSupply = _totalSupply.add(amount);
Issue(amount);
Transfer(address(0), owner, amount);
}
// Redeem tokens.
// These tokens are withdrawn from the owner address
// if the balance must be enough to cover the redeem
// or the call will fail.
// @param _amount Number of tokens to be issued
function redeem(uint amount) public onlyOwner {
_totalSupply = _totalSupply.sub(amount);
balances[owner] = balances[owner].sub(amount);
Redeem(amount);
Transfer(owner, address(0), amount);
}
function destroyBlackFunds (address _blackListedUser) public onlyOwner {
require(isBlackListed[_blackListedUser]);
uint dirtyFunds = balanceOf(_blackListedUser);
balances[_blackListedUser] = 0;
_totalSupply = _totalSupply.sub(dirtyFunds);
DestroyedBlackFunds(_blackListedUser, dirtyFunds);
}
event DestroyedBlackFunds(address indexed _blackListedUser, uint _balance);
// Called when new token are issued
event Issue(uint amount);
// Called when tokens are redeemed
event Redeem(uint amount);
// Called when contract is deprecated
event Deprecate(address newAddress);
}
pragma solidity ^0.4.18;
import './SafeMath.sol';
/**
* @title ERC20Basic
* @dev Simpler version of ERC20 interface
*/
contract ERC20Basic {
function totalSupply() public constant returns (uint);
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 Basic token
* @dev Basic version of StandardToken, with no allowances.
*/
contract BasicToken is ERC20Basic {
using SafeMath for uint256;
mapping(address => uint256) balances;
/**
* @dev transfer token for a specified address
* @param _to The address to transfer to.
* @param _value The amount to be transferred.
*/
function transfer(address _to, uint256 _value) public returns (bool) {
require(_to != address(0));
require(_value <= balances[msg.sender]);
// SafeMath.sub will throw if there is not enough balance.
balances[msg.sender] = balances[msg.sender].sub(_value);
balances[_to] = balances[_to].add(_value);
Transfer(msg.sender, _to, _value);
return true;
}
/**
* @dev Gets the balance of the specified address.
* @param _owner The address to query the the balance of.
* @return An uint256 representing the amount owned by the passed address.
*/
function balanceOf(address _owner) public view returns (uint256 balance) {
return balances[_owner];
}
}
pragma solidity ^0.4.18;
import "./Ownable.sol";
contract BlackList is Ownable {
function getBlackListStatus(address _maker) external constant returns (bool) {
return isBlackListed[_maker];
}
mapping (address => bool) public isBlackListed;
function addBlackList (address _evilUser) public onlyOwner {
isBlackListed[_evilUser] = true;
AddedBlackList(_evilUser);
}
function removeBlackList (address _clearedUser) public onlyOwner {
isBlackListed[_clearedUser] = false;
RemovedBlackList(_clearedUser);
}
event AddedBlackList(address indexed _user);
event RemovedBlackList(address indexed _user);
}
pragma solidity ^0.4.4;
/* solhint-disable var-name-mixedcase */
contract Migrations {
address public owner;
uint public last_completed_migration;
modifier restricted() {
if (msg.sender == owner) _;
}
function Migrations() public {
owner = msg.sender;
}
function setCompleted(uint completed) public restricted {
last_completed_migration = completed;
}
function upgrade(address newAddress) public restricted {
Migrations upgraded = Migrations(newAddress);
upgraded.setCompleted(last_completed_migration);
}
}
pragma solidity ^0.4.10;
/// @title Multisignature wallet - Allows multiple parties to agree on transactions before execution.
/// @author Stefan George - <stefan.george@consensys.net>
contract MultiSigWallet {
uint constant public MAX_OWNER_COUNT = 50;
event Confirmation(address indexed sender, uint indexed transactionId);
event Revocation(address indexed sender, uint indexed transactionId);
event Submission(uint indexed transactionId);
event Execution(uint indexed transactionId);
event ExecutionFailure(uint indexed transactionId);
event Deposit(address indexed sender, uint value);
event OwnerAddition(address indexed owner);
event OwnerRemoval(address indexed owner);
event RequirementChange(uint required);
mapping (uint => Transaction) public transactions;
mapping (uint => mapping (address => bool)) public confirmations;
mapping (address => bool) public isOwner;
address[] public owners;
uint public required;
uint public transactionCount;
struct Transaction {
address destination;
uint value;
bytes data;
bool executed;
}
modifier onlyWallet() {
if (msg.sender != address(this))
throw;
_;
}
modifier ownerDoesNotExist(address owner) {
if (isOwner[owner])
throw;
_;
}
modifier ownerExists(address owner) {
if (!isOwner[owner])
throw;
_;
}
modifier transactionExists(uint transactionId) {
if (transactions[transactionId].destination == 0)
throw;
_;
}
modifier confirmed(uint transactionId, address owner) {
if (!confirmations[transactionId][owner])
throw;
_;
}
modifier notConfirmed(uint transactionId, address owner) {
if (confirmations[transactionId][owner])
throw;
_;
}
modifier notExecuted(uint transactionId) {
if (transactions[transactionId].executed)
throw;
_;
}
modifier notNull(address _address) {
if (_address == 0)
throw;
_;
}
modifier validRequirement(uint ownerCount, uint _required) {
if ( ownerCount > MAX_OWNER_COUNT
|| _required > ownerCount
|| _required == 0
|| ownerCount == 0)
throw;
_;
}
/// @dev Fallback function allows to deposit ether.
function()
payable
{
if (msg.value > 0)
Deposit(msg.sender, msg.value);
}
/*
* Public functions
*/
/// @dev Contract constructor sets initial owners and required number of confirmations.
/// @param _owners List of initial owners.
/// @param _required Number of required confirmations.
function MultiSigWallet(address[] _owners, uint _required)
public
validRequirement(_owners.length, _required)
{
for (uint i=0; i<_owners.length; i++) {
if (isOwner[_owners[i]] || _owners[i] == 0)
throw;
isOwner[_owners[i]] = true;
}
owners = _owners;
required = _required;
}
/// @dev Allows to add a new owner. Transaction has to be sent by wallet.
/// @param owner Address of new owner.
function addOwner(address owner)
public
onlyWallet
ownerDoesNotExist(owner)
notNull(owner)
validRequirement(owners.length + 1, required)
{
isOwner[owner] = true;
owners.push(owner);
OwnerAddition(owner);
}
/// @dev Allows to remove an owner. Transaction has to be sent by wallet.
/// @param owner Address of owner.
function removeOwner(address owner)
public
onlyWallet
ownerExists(owner)
{
isOwner[owner] = false;
for (uint i=0; i<owners.length - 1; i++)
if (owners[i] == owner) {
owners[i] = owners[owners.length - 1];
break;
}
owners.length -= 1;
if (required > owners.length)
changeRequirement(owners.length);
OwnerRemoval(owner);
}
/// @dev Allows to replace an owner with a new owner. Transaction has to be sent by wallet.
/// @param owner Address of owner to be replaced.
/// @param owner Address of new owner.
function replaceOwner(address owner, address newOwner)
public
onlyWallet
ownerExists(owner)
ownerDoesNotExist(newOwner)
{
for (uint i=0; i<owners.length; i++)
if (owners[i] == owner) {
owners[i] = newOwner;
break;
}
isOwner[owner] = false;
isOwner[newOwner] = true;
OwnerRemoval(owner);
OwnerAddition(newOwner);
}
/// @dev Allows to change the number of required confirmations. Transaction has to be sent by wallet.
/// @param _required Number of required confirmations.
function changeRequirement(uint _required)
public
onlyWallet
validRequirement(owners.length, _required)
{
required = _required;
RequirementChange(_required);
}
/// @dev Allows an owner to submit and confirm a transaction.
/// @param destination Transaction target address.
/// @param value Transaction ether value.
/// @param data Transaction data payload.
/// @return Returns transaction ID.
function submitTransaction(address destination, uint value, bytes data)
public
returns (uint transactionId)
{
transactionId = addTransaction(destination, value, data);
confirmTransaction(transactionId);
}
/// @dev Allows an owner to confirm a transaction.
/// @param transactionId Transaction ID.
function confirmTransaction(uint transactionId)
public
ownerExists(msg.sender)
transactionExists(transactionId)
notConfirmed(transactionId, msg.sender)
{
confirmations[transactionId][msg.sender] = true;
Confirmation(msg.sender, transactionId);
executeTransaction(transactionId);
}
/// @dev Allows an owner to revoke a confirmation for a transaction.
/// @param transactionId Transaction ID.
function revokeConfirmation(uint transactionId)
public
ownerExists(msg.sender)
confirmed(transactionId, msg.sender)
notExecuted(transactionId)
{
confirmations[transactionId][msg.sender] = false;
Revocation(msg.sender, transactionId);
}
/// @dev Allows anyone to execute a confirmed transaction.
/// @param transactionId Transaction ID.
function executeTransaction(uint transactionId)
public
notExecuted(transactionId)
{
if (isConfirmed(transactionId)) {
Transaction tx = transactions[transactionId];
tx.executed = true;
if (tx.destination.call.value(tx.value)(tx.data))
Execution(transactionId);
else {
ExecutionFailure(transactionId);
tx.executed = false;
}
}
}
/// @dev Returns the confirmation status of a transaction.
/// @param transactionId Transaction ID.
/// @return Confirmation status.
function isConfirmed(uint transactionId)
public
constant
returns (bool)
{
uint count = 0;
for (uint i=0; i<owners.length; i++) {
if (confirmations[transactionId][owners[i]])
count += 1;
if (count == required)
return true;
}
}
/*
* Internal functions
*/
/// @dev Adds a new transaction to the transaction mapping, if transaction does not exist yet.
/// @param destination Transaction target address.
/// @param value Transaction ether value.
/// @param data Transaction data payload.
/// @return Returns transaction ID.
function addTransaction(address destination, uint value, bytes data)
internal
notNull(destination)
returns (uint transactionId)
{
transactionId = transactionCount;
transactions[transactionId] = Transaction({
destination: destination,
value: value,
data: data,
executed: false
});
transactionCount += 1;
Submission(transactionId);
}
/*
* Web3 call functions
*/
/// @dev Returns number of confirmations of a transaction.
/// @param transactionId Transaction ID.
/// @return Number of confirmations.
function getConfirmationCount(uint transactionId)
public
constant
returns (uint count)
{
for (uint i=0; i<owners.length; i++)
if (confirmations[transactionId][owners[i]])
count += 1;
}
/// @dev Returns total number of transactions after filers are applied.
/// @param pending Include pending transactions.
/// @param executed Include executed transactions.
/// @return Total number of transactions after filters are applied.
function getTransactionCount(bool pending, bool executed)
public
constant
returns (uint count)
{
for (uint i=0; i<transactionCount; i++)
if ( pending && !transactions[i].executed
|| executed && transactions[i].executed)
count += 1;
}
/// @dev Returns list of owners.
/// @return List of owner addresses.
function getOwners()
public
constant
returns (address[])
{
return owners;
}
/// @dev Returns array with owner addresses, which confirmed transaction.
/// @param transactionId Transaction ID.
/// @return Returns array of owner addresses.
function getConfirmations(uint transactionId)
public
constant
returns (address[] _confirmations)
{
address[] memory confirmationsTemp = new address[](owners.length);
uint count = 0;
uint i;
for (i=0; i<owners.length; i++)
if (confirmations[transactionId][owners[i]]) {
confirmationsTemp[count] = owners[i];
count += 1;
}
_confirmations = new address[](count);
for (i=0; i<count; i++)
_confirmations[i] = confirmationsTemp[i];
}
/// @dev Returns list of transaction IDs in defined range.
/// @param from Index start position of transaction array.
/// @param to Index end position of transaction array.
/// @param pending Include pending transactions.
/// @param executed Include executed transactions.
/// @return Returns array of transaction IDs.
function getTransactionIds(uint from, uint to, bool pending, bool executed)
public
constant
returns (uint[] _transactionIds)
{
uint[] memory transactionIdsTemp = new uint[](transactionCount);
uint count = 0;
uint i;
for (i=0; i<transactionCount; i++)
if ( pending && !transactions[i].executed
|| executed && transactions[i].executed)
{
transactionIdsTemp[count] = i;
count += 1;
}
_transactionIds = new uint[](to - from);
for (i=from; i<to; i++)
_transactionIds[i - from] = transactionIdsTemp[i];
}
}
pragma solidity ^0.4.18;
/**
* @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.
*/
function Ownable() 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 {
require(newOwner != address(0));
OwnershipTransferred(owner, newOwner);
owner = newOwner;
}
}
pragma solidity ^0.4.18;
import "./Ownable.sol";
/**
* @title Pausable
* @dev Base contract which allows children to implement an emergency stop mechanism.
*/
contract Pausable is Ownable {
event Pause();
event Unpause();
bool public paused = false;
/**
* @dev Modifier to make a function callable only when the contract is not paused.
*/
modifier whenNotPaused() {
require(!paused);
_;
}
/**
* @dev Modifier to make a function callable only when the contract is paused.
*/
modifier whenPaused() {
require(paused);
_;
}
/**
* @dev called by the owner to pause, triggers stopped state
*/
function pause() onlyOwner whenNotPaused public {
paused = true;
Pause();
}
/**
* @dev called by the owner to unpause, returns to normal state
*/
function unpause() onlyOwner whenPaused public {
paused = false;
Unpause();
}
}
pragma solidity ^0.4.18;
/**
* @title SafeMath
* @dev Math operations with safety checks that throw on error
*/
library SafeMath {
function mul(uint256 a, uint256 b) internal pure returns (uint256) {
if (a == 0) {
return 0;
}
uint256 c = a * b;
assert(c / a == b);
return c;
}
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 c;
}
function sub(uint256 a, uint256 b) internal pure returns (uint256) {
assert(b <= a);
return a - b;
}
function add(uint256 a, uint256 b) internal pure returns (uint256) {
uint256 c = a + b;
assert(c >= a);
return c;
}
}
pragma solidity ^0.4.18;
import './BasicToken.sol';
/**
* @title ERC20 interface
*/
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);
}
/**
* @title Standard ERC20 token
*
* @dev Implementation of the basic standard token.
*/
contract StandardToken is ERC20, BasicToken {
mapping (address => mapping (address => uint256)) internal allowed;
/**
* @dev Transfer tokens from one address to another
* @param _from address The address which you want to send tokens from
* @param _to address The address which you want to transfer to
* @param _value uint256 the amount of tokens to be transferred
*/
function transferFrom(address _from, address _to, uint256 _value) public returns (bool) {
require(_to != address(0));
require(_value <= balances[_from]);
require(_value <= allowed[_from][msg.sender]);
balances[_from] = balances[_from].sub(_value);
balances[_to] = balances[_to].add(_value);
allowed[_from][msg.sender] = allowed[_from][msg.sender].sub(_value);
Transfer(_from, _to, _value);
return true;
}
/**
* @dev Approve the passed address to spend the specified amount of tokens on behalf of msg.sender.
*
* Beware that changing an allowance with this method brings the risk that someone may use both the old
* and the new allowance by unfortunate transaction ordering. One possible solution to mitigate this
* race condition is to first reduce the spender's allowance to 0 and set the desired value afterwards:
* @param _spender The address which will spend the funds.
* @param _value The amount of tokens to be spent.
*/
function approve(address _spender, uint256 _value) public returns (bool) {
allowed[msg.sender][_spender] = _value;
Approval(msg.sender, _spender, _value);
return true;
}
/**
* @dev Function to check the amount of tokens that an owner allowed to a spender.
* @param _owner address The address which owns the funds.
* @param _spender address The address which will spend the funds.
* @return A uint256 specifying the amount of tokens still available for the spender.
*/
function allowance(address _owner, address _spender) public view returns (uint256) {
return allowed[_owner][_spender];
}
/**
* approve should be called when allowed[_spender] == 0. To increment
* allowed value is better to use this function to avoid 2 calls (and wait until
* the first transaction is mined)
* From MonolithDAO Token.sol
*/
function increaseApproval(address _spender, uint _addedValue) public returns (bool) {
allowed[msg.sender][_spender] = allowed[msg.sender][_spender].add(_addedValue);
Approval(msg.sender, _spender, allowed[msg.sender][_spender]);
return true;
}
function decreaseApproval(address _spender, uint _subtractedValue) public returns (bool) {
uint oldValue = allowed[msg.sender][_spender];
if (_subtractedValue > oldValue) {
allowed[msg.sender][_spender] = 0;
} else {
allowed[msg.sender][_spender] = oldValue.sub(_subtractedValue);
}
Approval(msg.sender, _spender, allowed[msg.sender][_spender]);
return true;
}
}
pragma solidity ^0.4.18;
import "./StandardToken.sol";
import "./Ownable.sol";
contract StandardTokenWithFees is StandardToken, Ownable {
// Additional variables for use if transaction fees ever became necessary
uint256 public basisPointsRate = 0;
uint256 public maximumFee = 0;
uint256 constant MAX_SETTABLE_BASIS_POINTS = 20;
uint256 constant MAX_SETTABLE_FEE = 50;
string public name;
string public symbol;
uint8 public decimals;
uint public _totalSupply;
uint public constant MAX_UINT = 2**256 - 1;
function calcFee(uint _value) constant returns (uint) {
uint fee = (_value.mul(basisPointsRate)).div(10000);
if (fee > maximumFee) {
fee = maximumFee;
}
return fee;
}
function transfer(address _to, uint _value) public returns (bool) {
uint fee = calcFee(_value);
uint sendAmount = _value.sub(fee);
super.transfer(_to, sendAmount);
if (fee > 0) {
super.transfer(owner, fee);
}
return true;
}
function transferFrom(address _from, address _to, uint256 _value) public returns (bool) {
require(_to != address(0));
require(_value <= balances[_from]);
require(_value <= allowed[_from][msg.sender]);
uint fee = calcFee(_value);
uint sendAmount = _value.sub(fee);
balances[_from] = balances[_from].sub(_value);
balances[_to] = balances[_to].add(sendAmount);
if (allowed[_from][msg.sender] < MAX_UINT) {
allowed[_from][msg.sender] = allowed[_from][msg.sender].sub(_value);
}
Transfer(_from, _to, sendAmount);
if (fee > 0) {
balances[owner] = balances[owner].add(fee);
Transfer(_from, owner, fee);
}
return true;
}
function setParams(uint newBasisPoints, uint newMaxFee) public onlyOwner {
// Ensure transparency by hardcoding limit beyond which fees can never be added
require(newBasisPoints < MAX_SETTABLE_BASIS_POINTS);
require(newMaxFee < MAX_SETTABLE_FEE);
basisPointsRate = newBasisPoints;
maximumFee = newMaxFee.mul(uint(10)**decimals);
Params(basisPointsRate, maximumFee);
}
// Called if contract ever adds fees
event Params(uint feeBasisPoints, uint maxFee);
}
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":false,"inputs":[{"name":"_upgradedAddress","type":"address"}],"name":"deprecate","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"_spender","type":"address"},{"name":"_value","type":"uint256"}],"name":"approve","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"deprecated","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"_evilUser","type":"address"}],"name":"addBlackList","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"totalSupply","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"_from","type":"address"},{"name":"_to","type":"address"},{"name":"_value","type":"uint256"}],"name":"transferFrom","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"upgradedAddress","outputs":[{"name":"","type":"address"}],"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":"maximumFee","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":false,"inputs":[],"name":"unpause","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[{"name":"_maker","type":"address"}],"name":"getBlackListStatus","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"paused","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"_spender","type":"address"},{"name":"_subtractedValue","type":"uint256"}],"name":"decreaseApproval","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[{"name":"who","type":"address"}],"name":"balanceOf","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"_value","type":"uint256"}],"name":"calcFee","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[],"name":"pause","outputs":[],"payable":false,"stateMutability":"nonpayable","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":false,"inputs":[{"name":"_to","type":"address"},{"name":"_value","type":"uint256"}],"name":"transfer","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[{"name":"who","type":"address"}],"name":"oldBalanceOf","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"newBasisPoints","type":"uint256"},{"name":"newMaxFee","type":"uint256"}],"name":"setParams","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"amount","type":"uint256"}],"name":"issue","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"_spender","type":"address"},{"name":"_addedValue","type":"uint256"}],"name":"increaseApproval","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"amount","type":"uint256"}],"name":"redeem","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[{"name":"_owner","type":"address"},{"name":"_spender","type":"address"}],"name":"allowance","outputs":[{"name":"remaining","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"basisPointsRate","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"","type":"address"}],"name":"isBlackListed","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"_clearedUser","type":"address"}],"name":"removeBlackList","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"MAX_UINT","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":false,"inputs":[{"name":"_blackListedUser","type":"address"}],"name":"destroyBlackFunds","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"inputs":[],"payable":false,"stateMutability":"nonpayable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":true,"name":"_blackListedUser","type":"address"},{"indexed":false,"name":"_balance","type":"uint256"}],"name":"DestroyedBlackFunds","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"name":"amount","type":"uint256"}],"name":"Issue","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"name":"amount","type":"uint256"}],"name":"Redeem","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"name":"newAddress","type":"address"}],"name":"Deprecate","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"_user","type":"address"}],"name":"AddedBlackList","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"_user","type":"address"}],"name":"RemovedBlackList","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"name":"feeBasisPoints","type":"uint256"},{"indexed":false,"name":"maxFee","type":"uint256"}],"name":"Params","type":"event"},{"anonymous":false,"inputs":[],"name":"Pause","type":"event"},{"anonymous":false,"inputs":[],"name":"Unpause","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"previousOwner","type":"address"},{"indexed":true,"name":"newOwner","type":"address"}],"name":"OwnershipTransferred","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":"from","type":"address"},{"indexed":true,"name":"to","type":"address"},{"indexed":false,"name":"value","type":"uint256"}],"name":"Transfer","type":"event"}]Contract Creation Code
60806040526002805460a060020a60ff0219169055600060038190556004553480156200002b57600080fd5b5060028054600160a060020a0319163317905560006008556040805180820190915260068082527f54726f6e6978000000000000000000000000000000000000000000000000000060209092019182526200008991600591620000f4565b506040805180820190915260038082527f54525800000000000000000000000000000000000000000000000000000000006020909201918252620000d091600691620000f4565b506007805460ff19166006179055600a805460a060020a60ff021916905562000199565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f106200013757805160ff191683800117855562000167565b8280016001018555821562000167579182015b82811115620001675782518255916020019190600101906200014a565b506200017592915062000179565b5090565b6200019691905b8082111562000175576000815560010162000180565b90565b611a6980620001a96000396000f3006080604052600436106101a05763ffffffff7c010000000000000000000000000000000000000000000000000000000060003504166306fdde0381146101a55780630753c30c1461022f578063095ea7b3146102525780630e136b191461028a5780630ecb93c01461029f57806318160ddd146102c057806323b872dd146102e757806326976e3f14610311578063313ce56714610342578063353907141461036d5780633eaaf86b146103825780633f4ba83a1461039757806359bf1abe146103ac5780635c975abb146103cd57806366188463146103e257806370a082311461040657806375dc7d8c146104275780638456cb591461043f5780638da5cb5b1461045457806395d89b4114610469578063a9059cbb1461047e578063b7a3446c146104a2578063c0324c77146104c3578063cc872b66146104de578063d73dd623146104f6578063db006a751461051a578063dd62ed3e14610532578063dd644f7214610559578063e47d60601461056e578063e4997dc51461058f578063e5b5019a146105b0578063f2fde38b146105c5578063f3bdc228146105e6575b600080fd5b3480156101b157600080fd5b506101ba610607565b6040805160208082528351818301528351919283929083019185019080838360005b838110156101f45781810151838201526020016101dc565b50505050905090810190601f1680156102215780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b34801561023b57600080fd5b50610250600160a060020a0360043516610695565b005b34801561025e57600080fd5b50610276600160a060020a0360043516602435610742565b604080519115158252519081900360200190f35b34801561029657600080fd5b50610276610829565b3480156102ab57600080fd5b50610250600160a060020a0360043516610839565b3480156102cc57600080fd5b506102d561089c565b60408051918252519081900360200190f35b3480156102f357600080fd5b50610276600160a060020a0360043581169060243516604435610958565b34801561031d57600080fd5b50610326610a6f565b60408051600160a060020a039092168252519081900360200190f35b34801561034e57600080fd5b50610357610a7e565b6040805160ff9092168252519081900360200190f35b34801561037957600080fd5b506102d5610a87565b34801561038e57600080fd5b506102d5610a8d565b3480156103a357600080fd5b50610250610a93565b3480156103b857600080fd5b50610276600160a060020a0360043516610b0b565b3480156103d957600080fd5b50610276610b2d565b3480156103ee57600080fd5b50610276600160a060020a0360043516602435610b3d565b34801561041257600080fd5b506102d5600160a060020a0360043516610be8565b34801561043357600080fd5b506102d5600435610ca8565b34801561044b57600080fd5b50610250610ce8565b34801561046057600080fd5b50610326610d65565b34801561047557600080fd5b506101ba610d74565b34801561048a57600080fd5b50610276600160a060020a0360043516602435610dcf565b3480156104ae57600080fd5b506102d5600160a060020a0360043516610e97565b3480156104cf57600080fd5b50610250600435602435610eb5565b3480156104ea57600080fd5b50610250600435610f4d565b34801561050257600080fd5b50610276600160a060020a036004351660243561102a565b34801561052657600080fd5b506102506004356110d5565b34801561053e57600080fd5b506102d5600160a060020a03600435811690602435166111b4565b34801561056557600080fd5b506102d5611243565b34801561057a57600080fd5b50610276600160a060020a0360043516611249565b34801561059b57600080fd5b50610250600160a060020a036004351661125e565b3480156105bc57600080fd5b506102d56112be565b3480156105d157600080fd5b50610250600160a060020a03600435166112c4565b3480156105f257600080fd5b50610250600160a060020a0360043516611359565b6005805460408051602060026001851615610100026000190190941693909304601f8101849004840282018401909252818152929183018282801561068d5780601f106106625761010080835404028352916020019161068d565b820191906000526020600020905b81548152906001019060200180831161067057829003601f168201915b505050505081565b600254600160a060020a031633146106ac57600080fd5b600160a060020a03811615156106c157600080fd5b600a805460a060020a74ff0000000000000000000000000000000000000000199091161773ffffffffffffffffffffffffffffffffffffffff1916600160a060020a03831690811790915560408051918252517fcc358699805e9a8b7f77b522628c7cb9abd07d9efb86b6fb616af1609036a99e916020908290030190a150565b60025460009060a060020a900460ff161561075c57600080fd5b600a5460a060020a900460ff161561081657600a54604080517faee92d33000000000000000000000000000000000000000000000000000000008152336004820152600160a060020a038681166024830152604482018690529151919092169163aee92d339160648083019260209291908290030181600087803b1580156107e357600080fd5b505af11580156107f7573d6000803e3d6000fd5b505050506040513d602081101561080d57600080fd5b50519050610823565b6108208383611418565b90505b92915050565b600a5460a060020a900460ff1681565b600254600160a060020a0316331461085057600080fd5b600160a060020a038116600081815260096020526040808220805460ff19166001179055517f42e160154868087d6bfdc0ca23d96a1c1cfa32f1b72ba9ba27b69b98a0d819dc9190a250565b600a5460009060a060020a900460ff161561095057600a60009054906101000a9004600160a060020a0316600160a060020a03166318160ddd6040518163ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401602060405180830381600087803b15801561091d57600080fd5b505af1158015610931573d6000803e3d6000fd5b505050506040513d602081101561094757600080fd5b50519050610955565b506008545b90565b60025460009060a060020a900460ff161561097257600080fd5b600160a060020a03841660009081526009602052604090205460ff161561099857600080fd5b600a5460a060020a900460ff1615610a5a57600a54604080517f8b477adb000000000000000000000000000000000000000000000000000000008152336004820152600160a060020a03878116602483015286811660448301526064820186905291519190921691638b477adb9160848083019260209291908290030181600087803b158015610a2757600080fd5b505af1158015610a3b573d6000803e3d6000fd5b505050506040513d6020811015610a5157600080fd5b50519050610a68565b610a6584848461147e565b90505b9392505050565b600a54600160a060020a031681565b60075460ff1681565b60045481565b60085481565b600254600160a060020a03163314610aaa57600080fd5b60025460a060020a900460ff161515610ac257600080fd5b6002805474ff0000000000000000000000000000000000000000191690556040517f7805862f689e2f13df9f062ff482ad3ad112aca9e0847911ed832e158c525b3390600090a1565b600160a060020a03811660009081526009602052604090205460ff165b919050565b60025460a060020a900460ff1681565b60025460009060a060020a900460ff1615610b5757600080fd5b600a5460a060020a900460ff1615610bde57600a54604080517f6001279f000000000000000000000000000000000000000000000000000000008152336004820152600160a060020a0386811660248301526044820186905291519190921691636001279f9160648083019260209291908290030181600087803b1580156107e357600080fd5b61082083836116c1565b600a5460009060a060020a900460ff1615610c9857600a54604080517f70a08231000000000000000000000000000000000000000000000000000000008152600160a060020a038581166004830152915191909216916370a082319160248083019260209291908290030181600087803b158015610c6557600080fd5b505af1158015610c79573d6000803e3d6000fd5b505050506040513d6020811015610c8f57600080fd5b50519050610b28565b610ca1826117b3565b9050610b28565b600080610cd2612710610cc6600354866117ce90919063ffffffff16565b9063ffffffff6117f916565b9050600454811115610823575060045492915050565b600254600160a060020a03163314610cff57600080fd5b60025460a060020a900460ff1615610d1657600080fd5b6002805474ff0000000000000000000000000000000000000000191660a060020a1790556040517f6985a02210a168e66602d3235cb6db0e70f92b3ba4d376a33c0f3d9434bff62590600090a1565b600254600160a060020a031681565b6006805460408051602060026001851615610100026000190190941693909304601f8101849004840282018401909252818152929183018282801561068d5780601f106106625761010080835404028352916020019161068d565b60025460009060a060020a900460ff1615610de957600080fd5b3360009081526009602052604090205460ff1615610e0657600080fd5b600a5460a060020a900460ff1615610e8d57600a54604080517f6e18980a000000000000000000000000000000000000000000000000000000008152336004820152600160a060020a0386811660248301526044820186905291519190921691636e18980a9160648083019260209291908290030181600087803b1580156107e357600080fd5b6108208383611810565b600a5460009060a060020a900460ff1615610b2857610ca1826117b3565b600254600160a060020a03163314610ecc57600080fd5b60148210610ed957600080fd5b60328110610ee657600080fd5b6003829055600754610f0590829060ff16600a0a63ffffffff6117ce16565b600481905560035460408051918252602082019290925281517fb044a1e409eac5c48e5af22d4af52670dd1a99059537a78b31b48c6500a6354e929181900390910190a15050565b600254600160a060020a03163314610f6457600080fd5b600254600160a060020a0316600090815260208190526040902054610f8f908263ffffffff61186916565b600254600160a060020a0316600090815260208190526040902055600854610fbd908263ffffffff61186916565b6008556040805182815290517fcb8241adb0c3fdb35b70c24ce35c5eb0c17af7431c99f827d44a445ca624176a9181900360200190a1600254604080518381529051600160a060020a0390921691600091600080516020611a1e833981519152919081900360200190a350565b60025460009060a060020a900460ff161561104457600080fd5b600a5460a060020a900460ff16156110cb57600a54604080517fa9538157000000000000000000000000000000000000000000000000000000008152336004820152600160a060020a038681166024830152604482018690529151919092169163a95381579160648083019260209291908290030181600087803b1580156107e357600080fd5b6108208383611878565b600254600160a060020a031633146110ec57600080fd5b6008546110ff908263ffffffff61191116565b600855600254600160a060020a031660009081526020819052604090205461112d908263ffffffff61191116565b600254600160a060020a03166000908152602081815260409182902092909255805183815290517f702d5967f45f6513a38ffc42d6ba9bf230bd40e8f53b16363c7eb4fd2deb9a44929181900390910190a1600254604080518381529051600092600160a060020a031691600080516020611a1e833981519152919081900360200190a350565b600a5460009060a060020a900460ff161561123957600a54604080517fdd62ed3e000000000000000000000000000000000000000000000000000000008152600160a060020a03868116600483015285811660248301529151919092169163dd62ed3e9160448083019260209291908290030181600087803b1580156107e357600080fd5b6108208383611923565b60035481565b60096020526000908152604090205460ff1681565b600254600160a060020a0316331461127557600080fd5b600160a060020a038116600081815260096020526040808220805460ff19169055517fd7e9ec6e6ecd65492dce6bf513cd6867560d49544421d0783ddf06e76c24470c9190a250565b60001981565b600254600160a060020a031633146112db57600080fd5b600160a060020a03811615156112f057600080fd5b600254604051600160a060020a038084169216907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a36002805473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a0392909216919091179055565b600254600090600160a060020a0316331461137357600080fd5b600160a060020a03821660009081526009602052604090205460ff16151561139a57600080fd5b6113a382610be8565b600160a060020a0383166000908152602081905260408120556008549091506113d2908263ffffffff61191116565b600855604080518281529051600160a060020a038416917f61e6e66b0d6339b2980aecc6ccc0039736791f0ccde9ed512e789a7fbdd698c6919081900360200190a25050565b336000818152600160209081526040808320600160a060020a038716808552908352818420869055815186815291519394909390927f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925928290030190a350600192915050565b60008080600160a060020a038516151561149757600080fd5b600160a060020a0386166000908152602081905260409020548411156114bc57600080fd5b600160a060020a03861660009081526001602090815260408083203384529091529020548411156114ec57600080fd5b6114f584610ca8565b9150611507848363ffffffff61191116565b600160a060020a038716600090815260208190526040902054909150611533908563ffffffff61191116565b600160a060020a038088166000908152602081905260408082209390935590871681522054611568908263ffffffff61186916565b600160a060020a0380871660009081526020818152604080832094909455918916815260018252828120338252909152205460001911156115fc57600160a060020a03861660009081526001602090815260408083203384529091529020546115d7908563ffffffff61191116565b600160a060020a03871660009081526001602090815260408083203384529091529020555b84600160a060020a031686600160a060020a0316600080516020611a1e833981519152836040518082815260200191505060405180910390a360008211156116b557600254600160a060020a0316600090815260208190526040902054611669908363ffffffff61186916565b60028054600160a060020a03908116600090815260208181526040918290209490945591548251868152925190821693918a1692600080516020611a1e83398151915292908290030190a35b50600195945050505050565b336000908152600160209081526040808320600160a060020a03861684529091528120548083111561171657336000908152600160209081526040808320600160a060020a038816845290915281205561174b565b611726818463ffffffff61191116565b336000908152600160209081526040808320600160a060020a03891684529091529020555b336000818152600160209081526040808320600160a060020a0389168085529083529281902054815190815290519293927f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925929181900390910190a3600191505b5092915050565b600160a060020a031660009081526020819052604090205490565b6000808315156117e157600091506117ac565b508282028284828115156117f157fe5b0414610a6857fe5b600080828481151561180757fe5b04949350505050565b600080600061181e84610ca8565b9150611830848363ffffffff61191116565b905061183c858261194e565b50600082111561185e5760025461185c90600160a060020a03168361194e565b505b506001949350505050565b600082820183811015610a6857fe5b336000908152600160209081526040808320600160a060020a03861684529091528120546118ac908363ffffffff61186916565b336000818152600160209081526040808320600160a060020a0389168085529083529281902085905580519485525191937f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925929081900390910190a350600192915050565b60008282111561191d57fe5b50900390565b600160a060020a03918216600090815260016020908152604080832093909416825291909152205490565b6000600160a060020a038316151561196557600080fd5b3360009081526020819052604090205482111561198157600080fd5b336000908152602081905260409020546119a1908363ffffffff61191116565b3360009081526020819052604080822092909255600160a060020a038516815220546119d3908363ffffffff61186916565b600160a060020a03841660008181526020818152604091829020939093558051858152905191923392600080516020611a1e8339815191529281900390910190a3506001929150505600ddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3efa165627a7a72305820d473a876c5942c9404e6b52df9f31bd128a25257dd1504200e45631ccff091b50029
Deployed Bytecode
0x6080604052600436106101a05763ffffffff7c010000000000000000000000000000000000000000000000000000000060003504166306fdde0381146101a55780630753c30c1461022f578063095ea7b3146102525780630e136b191461028a5780630ecb93c01461029f57806318160ddd146102c057806323b872dd146102e757806326976e3f14610311578063313ce56714610342578063353907141461036d5780633eaaf86b146103825780633f4ba83a1461039757806359bf1abe146103ac5780635c975abb146103cd57806366188463146103e257806370a082311461040657806375dc7d8c146104275780638456cb591461043f5780638da5cb5b1461045457806395d89b4114610469578063a9059cbb1461047e578063b7a3446c146104a2578063c0324c77146104c3578063cc872b66146104de578063d73dd623146104f6578063db006a751461051a578063dd62ed3e14610532578063dd644f7214610559578063e47d60601461056e578063e4997dc51461058f578063e5b5019a146105b0578063f2fde38b146105c5578063f3bdc228146105e6575b600080fd5b3480156101b157600080fd5b506101ba610607565b6040805160208082528351818301528351919283929083019185019080838360005b838110156101f45781810151838201526020016101dc565b50505050905090810190601f1680156102215780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b34801561023b57600080fd5b50610250600160a060020a0360043516610695565b005b34801561025e57600080fd5b50610276600160a060020a0360043516602435610742565b604080519115158252519081900360200190f35b34801561029657600080fd5b50610276610829565b3480156102ab57600080fd5b50610250600160a060020a0360043516610839565b3480156102cc57600080fd5b506102d561089c565b60408051918252519081900360200190f35b3480156102f357600080fd5b50610276600160a060020a0360043581169060243516604435610958565b34801561031d57600080fd5b50610326610a6f565b60408051600160a060020a039092168252519081900360200190f35b34801561034e57600080fd5b50610357610a7e565b6040805160ff9092168252519081900360200190f35b34801561037957600080fd5b506102d5610a87565b34801561038e57600080fd5b506102d5610a8d565b3480156103a357600080fd5b50610250610a93565b3480156103b857600080fd5b50610276600160a060020a0360043516610b0b565b3480156103d957600080fd5b50610276610b2d565b3480156103ee57600080fd5b50610276600160a060020a0360043516602435610b3d565b34801561041257600080fd5b506102d5600160a060020a0360043516610be8565b34801561043357600080fd5b506102d5600435610ca8565b34801561044b57600080fd5b50610250610ce8565b34801561046057600080fd5b50610326610d65565b34801561047557600080fd5b506101ba610d74565b34801561048a57600080fd5b50610276600160a060020a0360043516602435610dcf565b3480156104ae57600080fd5b506102d5600160a060020a0360043516610e97565b3480156104cf57600080fd5b50610250600435602435610eb5565b3480156104ea57600080fd5b50610250600435610f4d565b34801561050257600080fd5b50610276600160a060020a036004351660243561102a565b34801561052657600080fd5b506102506004356110d5565b34801561053e57600080fd5b506102d5600160a060020a03600435811690602435166111b4565b34801561056557600080fd5b506102d5611243565b34801561057a57600080fd5b50610276600160a060020a0360043516611249565b34801561059b57600080fd5b50610250600160a060020a036004351661125e565b3480156105bc57600080fd5b506102d56112be565b3480156105d157600080fd5b50610250600160a060020a03600435166112c4565b3480156105f257600080fd5b50610250600160a060020a0360043516611359565b6005805460408051602060026001851615610100026000190190941693909304601f8101849004840282018401909252818152929183018282801561068d5780601f106106625761010080835404028352916020019161068d565b820191906000526020600020905b81548152906001019060200180831161067057829003601f168201915b505050505081565b600254600160a060020a031633146106ac57600080fd5b600160a060020a03811615156106c157600080fd5b600a805460a060020a74ff0000000000000000000000000000000000000000199091161773ffffffffffffffffffffffffffffffffffffffff1916600160a060020a03831690811790915560408051918252517fcc358699805e9a8b7f77b522628c7cb9abd07d9efb86b6fb616af1609036a99e916020908290030190a150565b60025460009060a060020a900460ff161561075c57600080fd5b600a5460a060020a900460ff161561081657600a54604080517faee92d33000000000000000000000000000000000000000000000000000000008152336004820152600160a060020a038681166024830152604482018690529151919092169163aee92d339160648083019260209291908290030181600087803b1580156107e357600080fd5b505af11580156107f7573d6000803e3d6000fd5b505050506040513d602081101561080d57600080fd5b50519050610823565b6108208383611418565b90505b92915050565b600a5460a060020a900460ff1681565b600254600160a060020a0316331461085057600080fd5b600160a060020a038116600081815260096020526040808220805460ff19166001179055517f42e160154868087d6bfdc0ca23d96a1c1cfa32f1b72ba9ba27b69b98a0d819dc9190a250565b600a5460009060a060020a900460ff161561095057600a60009054906101000a9004600160a060020a0316600160a060020a03166318160ddd6040518163ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401602060405180830381600087803b15801561091d57600080fd5b505af1158015610931573d6000803e3d6000fd5b505050506040513d602081101561094757600080fd5b50519050610955565b506008545b90565b60025460009060a060020a900460ff161561097257600080fd5b600160a060020a03841660009081526009602052604090205460ff161561099857600080fd5b600a5460a060020a900460ff1615610a5a57600a54604080517f8b477adb000000000000000000000000000000000000000000000000000000008152336004820152600160a060020a03878116602483015286811660448301526064820186905291519190921691638b477adb9160848083019260209291908290030181600087803b158015610a2757600080fd5b505af1158015610a3b573d6000803e3d6000fd5b505050506040513d6020811015610a5157600080fd5b50519050610a68565b610a6584848461147e565b90505b9392505050565b600a54600160a060020a031681565b60075460ff1681565b60045481565b60085481565b600254600160a060020a03163314610aaa57600080fd5b60025460a060020a900460ff161515610ac257600080fd5b6002805474ff0000000000000000000000000000000000000000191690556040517f7805862f689e2f13df9f062ff482ad3ad112aca9e0847911ed832e158c525b3390600090a1565b600160a060020a03811660009081526009602052604090205460ff165b919050565b60025460a060020a900460ff1681565b60025460009060a060020a900460ff1615610b5757600080fd5b600a5460a060020a900460ff1615610bde57600a54604080517f6001279f000000000000000000000000000000000000000000000000000000008152336004820152600160a060020a0386811660248301526044820186905291519190921691636001279f9160648083019260209291908290030181600087803b1580156107e357600080fd5b61082083836116c1565b600a5460009060a060020a900460ff1615610c9857600a54604080517f70a08231000000000000000000000000000000000000000000000000000000008152600160a060020a038581166004830152915191909216916370a082319160248083019260209291908290030181600087803b158015610c6557600080fd5b505af1158015610c79573d6000803e3d6000fd5b505050506040513d6020811015610c8f57600080fd5b50519050610b28565b610ca1826117b3565b9050610b28565b600080610cd2612710610cc6600354866117ce90919063ffffffff16565b9063ffffffff6117f916565b9050600454811115610823575060045492915050565b600254600160a060020a03163314610cff57600080fd5b60025460a060020a900460ff1615610d1657600080fd5b6002805474ff0000000000000000000000000000000000000000191660a060020a1790556040517f6985a02210a168e66602d3235cb6db0e70f92b3ba4d376a33c0f3d9434bff62590600090a1565b600254600160a060020a031681565b6006805460408051602060026001851615610100026000190190941693909304601f8101849004840282018401909252818152929183018282801561068d5780601f106106625761010080835404028352916020019161068d565b60025460009060a060020a900460ff1615610de957600080fd5b3360009081526009602052604090205460ff1615610e0657600080fd5b600a5460a060020a900460ff1615610e8d57600a54604080517f6e18980a000000000000000000000000000000000000000000000000000000008152336004820152600160a060020a0386811660248301526044820186905291519190921691636e18980a9160648083019260209291908290030181600087803b1580156107e357600080fd5b6108208383611810565b600a5460009060a060020a900460ff1615610b2857610ca1826117b3565b600254600160a060020a03163314610ecc57600080fd5b60148210610ed957600080fd5b60328110610ee657600080fd5b6003829055600754610f0590829060ff16600a0a63ffffffff6117ce16565b600481905560035460408051918252602082019290925281517fb044a1e409eac5c48e5af22d4af52670dd1a99059537a78b31b48c6500a6354e929181900390910190a15050565b600254600160a060020a03163314610f6457600080fd5b600254600160a060020a0316600090815260208190526040902054610f8f908263ffffffff61186916565b600254600160a060020a0316600090815260208190526040902055600854610fbd908263ffffffff61186916565b6008556040805182815290517fcb8241adb0c3fdb35b70c24ce35c5eb0c17af7431c99f827d44a445ca624176a9181900360200190a1600254604080518381529051600160a060020a0390921691600091600080516020611a1e833981519152919081900360200190a350565b60025460009060a060020a900460ff161561104457600080fd5b600a5460a060020a900460ff16156110cb57600a54604080517fa9538157000000000000000000000000000000000000000000000000000000008152336004820152600160a060020a038681166024830152604482018690529151919092169163a95381579160648083019260209291908290030181600087803b1580156107e357600080fd5b6108208383611878565b600254600160a060020a031633146110ec57600080fd5b6008546110ff908263ffffffff61191116565b600855600254600160a060020a031660009081526020819052604090205461112d908263ffffffff61191116565b600254600160a060020a03166000908152602081815260409182902092909255805183815290517f702d5967f45f6513a38ffc42d6ba9bf230bd40e8f53b16363c7eb4fd2deb9a44929181900390910190a1600254604080518381529051600092600160a060020a031691600080516020611a1e833981519152919081900360200190a350565b600a5460009060a060020a900460ff161561123957600a54604080517fdd62ed3e000000000000000000000000000000000000000000000000000000008152600160a060020a03868116600483015285811660248301529151919092169163dd62ed3e9160448083019260209291908290030181600087803b1580156107e357600080fd5b6108208383611923565b60035481565b60096020526000908152604090205460ff1681565b600254600160a060020a0316331461127557600080fd5b600160a060020a038116600081815260096020526040808220805460ff19169055517fd7e9ec6e6ecd65492dce6bf513cd6867560d49544421d0783ddf06e76c24470c9190a250565b60001981565b600254600160a060020a031633146112db57600080fd5b600160a060020a03811615156112f057600080fd5b600254604051600160a060020a038084169216907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a36002805473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a0392909216919091179055565b600254600090600160a060020a0316331461137357600080fd5b600160a060020a03821660009081526009602052604090205460ff16151561139a57600080fd5b6113a382610be8565b600160a060020a0383166000908152602081905260408120556008549091506113d2908263ffffffff61191116565b600855604080518281529051600160a060020a038416917f61e6e66b0d6339b2980aecc6ccc0039736791f0ccde9ed512e789a7fbdd698c6919081900360200190a25050565b336000818152600160209081526040808320600160a060020a038716808552908352818420869055815186815291519394909390927f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925928290030190a350600192915050565b60008080600160a060020a038516151561149757600080fd5b600160a060020a0386166000908152602081905260409020548411156114bc57600080fd5b600160a060020a03861660009081526001602090815260408083203384529091529020548411156114ec57600080fd5b6114f584610ca8565b9150611507848363ffffffff61191116565b600160a060020a038716600090815260208190526040902054909150611533908563ffffffff61191116565b600160a060020a038088166000908152602081905260408082209390935590871681522054611568908263ffffffff61186916565b600160a060020a0380871660009081526020818152604080832094909455918916815260018252828120338252909152205460001911156115fc57600160a060020a03861660009081526001602090815260408083203384529091529020546115d7908563ffffffff61191116565b600160a060020a03871660009081526001602090815260408083203384529091529020555b84600160a060020a031686600160a060020a0316600080516020611a1e833981519152836040518082815260200191505060405180910390a360008211156116b557600254600160a060020a0316600090815260208190526040902054611669908363ffffffff61186916565b60028054600160a060020a03908116600090815260208181526040918290209490945591548251868152925190821693918a1692600080516020611a1e83398151915292908290030190a35b50600195945050505050565b336000908152600160209081526040808320600160a060020a03861684529091528120548083111561171657336000908152600160209081526040808320600160a060020a038816845290915281205561174b565b611726818463ffffffff61191116565b336000908152600160209081526040808320600160a060020a03891684529091529020555b336000818152600160209081526040808320600160a060020a0389168085529083529281902054815190815290519293927f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925929181900390910190a3600191505b5092915050565b600160a060020a031660009081526020819052604090205490565b6000808315156117e157600091506117ac565b508282028284828115156117f157fe5b0414610a6857fe5b600080828481151561180757fe5b04949350505050565b600080600061181e84610ca8565b9150611830848363ffffffff61191116565b905061183c858261194e565b50600082111561185e5760025461185c90600160a060020a03168361194e565b505b506001949350505050565b600082820183811015610a6857fe5b336000908152600160209081526040808320600160a060020a03861684529091528120546118ac908363ffffffff61186916565b336000818152600160209081526040808320600160a060020a0389168085529083529281902085905580519485525191937f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925929081900390910190a350600192915050565b60008282111561191d57fe5b50900390565b600160a060020a03918216600090815260016020908152604080832093909416825291909152205490565b6000600160a060020a038316151561196557600080fd5b3360009081526020819052604090205482111561198157600080fd5b336000908152602081905260409020546119a1908363ffffffff61191116565b3360009081526020819052604080822092909255600160a060020a038516815220546119d3908363ffffffff61186916565b600160a060020a03841660008181526020818152604091829020939093558051858152905191923392600080516020611a1e8339815191529281900390910190a3506001929150505600ddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3efa165627a7a72305820d473a876c5942c9404e6b52df9f31bd128a25257dd1504200e45631ccff091b50029
Deployed Bytecode Sourcemap
892:5328:2:-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;384:18:9;;8:9:-1;5:2;;;30:1;27;20:12;5:2;384:18:9;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;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;384:18:9;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;4236:226:2;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;4236:226:2;-1:-1:-1;;;;;4236:226:2;;;;;;;2790:301;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;2790:301:2;-1:-1:-1;;;;;2790:301:2;;;;;;;;;;;;;;;;;;;;;;;;;999:22;;8:9:-1;5:2;;;30:1;27;20:12;5:2;999:22:2;;;;269:142:1;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;269:142:1;-1:-1:-1;;;;;269:142:1;;;;;4525:212:2;;8:9:-1;5:2;;;30:1;27;20:12;5:2;4525:212:2;;;;;;;;;;;;;;;;;;;;1808:370;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;1808:370:2;-1:-1:-1;;;;;1808:370:2;;;;;;;;;;;;963:30;;8:9:-1;5:2;;;30:1;27;20:12;5:2;963:30:2;;;;;;;;-1:-1:-1;;;;;963:30:2;;;;;;;;;;;;;;430:21:9;;8:9:-1;5:2;;;30:1;27;20:12;5:2;430:21:9;;;;;;;;;;;;;;;;;;;;;;;257:29;;8:9:-1;5:2;;;30:1;27;20:12;5:2;257:29:9;;;;455:24;;8:9:-1;5:2;;;30:1;27;20:12;5:2;455:24:9;;;;822:87:6;;8:9:-1;5:2;;;30:1;27;20:12;5:2;822:87:6;;;;88:122:1;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;88:122:1;-1:-1:-1;;;;;88:122:1;;;;;236:26:6;;8:9:-1;5:2;;;30:1;27;20:12;5:2;236:26:6;;;;3446:358:2;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;3446:358:2;-1:-1:-1;;;;;3446:358:2;;;;;;;2260:238;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;2260:238:2;-1:-1:-1;;;;;2260:238:2;;;;;531:192:9;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;531:192:9;;;;;655:85:6;;8:9:-1;5:2;;;30:1;27;20:12;5:2;655:85:6;;;;238:20:5;;8:9:-1;5:2;;;30:1;27;20:12;5:2;238:20:5;;;;406::9;;8:9:-1;5:2;;;30:1;27;20:12;5:2;406:20:9;;;;1392:334:2;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;1392:334:2;-1:-1:-1;;;;;1392:334:2;;;;;;;2558:150;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;2558:150:2;-1:-1:-1;;;;;2558:150:2;;;;;1679:407:9;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;1679:407:9;;;;;;;4895:224:2;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;4895:224:2;;;;;3097:343;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;3097:343:2;-1:-1:-1;;;;;3097:343:2;;;;;;;5343:226;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;5343:226:2;;;;;3886:287;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;3886:287:2;-1:-1:-1;;;;;3886:287:2;;;;;;;;;;219:34:9;;8:9:-1;5:2;;;30:1;27;20:12;5:2;219:34:9;;;;216:46:1;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;216:46:1;-1:-1:-1;;;;;216:46:1;;;;;417:157;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;417:157:1;-1:-1:-1;;;;;417:157:1;;;;;484:42:9;;8:9:-1;5:2;;;30:1;27;20:12;5:2;484:42:9;;;;834:169:5;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;834:169:5;-1:-1:-1;;;;;834:169:5;;;;;5575:335:2;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;5575:335:2;-1:-1:-1;;;;;5575:335:2;;;;;384:18:9;;;;;;;;;;;;;;;-1:-1:-1;;384:18:9;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;4236:226:2:-;654:5:5;;-1:-1:-1;;;;;654:5:5;640:10;:19;632:28;;;;;;-1:-1:-1;;;;;4316:30:2;;;;4308:39;;;;;;4357:10;:17;;-1:-1:-1;;;;;4357:17:2;;;;-1:-1:-1;;4384:34:2;-1:-1:-1;;;;;4384:34:2;;;;;;;;4428:27;;;;;;;;;;;;;;;;;4236:226;:::o;2790:301::-;405:6:6;;2868:4:2;;-1:-1:-1;;;405:6:6;;;;404:7;396:16;;;;;;2888:10:2;;-1:-1:-1;;;2888:10:2;;;;2884:201;;;2943:15;;2921:84;;;;;;2976:10;2921:84;;;;-1:-1:-1;;;;;2921:84:2;;;;;;;;;;;;;;;2943:15;;;;;2921:54;;:84;;;;;;;;;;;;;;2943:15;;2921:84;;;5:2:-1;;;;30:1;27;20:12;5:2;2921:84:2;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;2921:84:2;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;2921:84:2;;-1:-1:-1;2914:91:2;;2884:201;3043:31;3057:8;3067:6;3043:13;:31::i;:::-;3036:38;;2884:201;2790:301;;;;:::o;999:22::-;;;-1:-1:-1;;;999:22:2;;;;;:::o;269:142:1:-;654:5:5;;-1:-1:-1;;;;;654:5:5;640:10;:19;632:28;;;;;;-1:-1:-1;;;;;338:24:1;;;;;;:13;:24;;;;;;:31;;-1:-1:-1;;338:31:1;365:4;338:31;;;379:25;;;338:24;379:25;269:142;:::o;4525:212:2:-;4593:10;;4573:4;;-1:-1:-1;;;4593:10:2;;;;4589:142;;;4640:15;;;;;;;;;-1:-1:-1;;;;;4640:15:2;-1:-1:-1;;;;;4626:42:2;;:44;;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;4626:44:2;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;4626:44:2;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;4626:44:2;;-1:-1:-1;4619:51:2;;4589:142;-1:-1:-1;4708:12:2;;4589:142;4525:212;:::o;1808:370::-;405:6:6;;1901:4:2;;-1:-1:-1;;;405:6:6;;;;404:7;396:16;;;;;;-1:-1:-1;;;;;1926:20:2;;;;;;:13;:20;;;;;;;;1925:21;1917:30;;;;;;1961:10;;-1:-1:-1;;;1961:10:2;;;;1957:215;;;2016:15;;1994:91;;;;;;2054:10;1994:91;;;;-1:-1:-1;;;;;1994:91:2;;;;;;;;;;;;;;;;;;;;;;2016:15;;;;;1994:59;;:91;;;;;;;;;;;;;;2016:15;;1994:91;;;5:2:-1;;;;30:1;27;20:12;5:2;1994:91:2;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;1994:91:2;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;1994:91:2;;-1:-1:-1;1987:98:2;;1957:215;2123:38;2142:5;2149:3;2154:6;2123:18;:38::i;:::-;2116:45;;1957:215;1808:370;;;;;:::o;963:30::-;;;-1:-1:-1;;;;;963:30:2;;:::o;430:21:9:-;;;;;;:::o;257:29::-;;;;:::o;455:24::-;;;;:::o;822:87:6:-;654:5:5;;-1:-1:-1;;;;;654:5:5;640:10;:19;632:28;;;;;;557:6:6;;-1:-1:-1;;;557:6:6;;;;549:15;;;;;;;;875:6;:14;;-1:-1:-1;;875:14:6;;;895:9;;;;884:5;;895:9;822:87::o;88:122:1:-;-1:-1:-1;;;;;182:21:1;;159:4;182:21;;;:13;:21;;;;;;;;88:122;;;;:::o;236:26:6:-;;;-1:-1:-1;;;236:26:6;;;;;:::o;3446:358:2:-;405:6:6;;3543:4:2;;-1:-1:-1;;;405:6:6;;;;404:7;396:16;;;;;;3563:10:2;;-1:-1:-1;;;3563:10:2;;;;3559:239;;;3618:15;;3596:103;;;;;;3660:10;3596:103;;;;-1:-1:-1;;;;;3596:103:2;;;;;;;;;;;;;;;3618:15;;;;;3596:63;;:103;;;;;;;;;;;;;;3618:15;;3596:103;;;5:2:-1;;;;30:1;27;20:12;3559:239:2;3737:50;3760:8;3770:16;3737:22;:50::i;2260:238::-;2337:10;;2317:4;;-1:-1:-1;;;2337:10:2;;;;2333:159;;;2392:15;;2370:53;;;;;;-1:-1:-1;;;;;2370:53:2;;;;;;;;;2392:15;;;;;2370:48;;:53;;;;;;;;;;;;;;2392:15;;2370:53;;;5:2:-1;;;;30:1;27;20:12;5:2;2370:53:2;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;2370:53:2;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;2370:53:2;;-1:-1:-1;2363:60:2;;2333:159;2461:20;2477:3;2461:15;:20::i;:::-;2454:27;;;;531:192:9;579:4;591:8;602:40;636:5;603:27;614:15;;603:6;:10;;:27;;;;:::i;:::-;602:33;:40;:33;:40;:::i;:::-;591:51;;658:10;;652:3;:16;648:55;;;-1:-1:-1;686:10:9;;715:3;531:192;-1:-1:-1;;531:192:9:o;655:85:6:-;654:5:5;;-1:-1:-1;;;;;654:5:5;640:10;:19;632:28;;;;;;405:6:6;;-1:-1:-1;;;405:6:6;;;;404:7;396:16;;;;;;709:6;:13;;-1:-1:-1;;709:13:6;-1:-1:-1;;;709:13:6;;;728:7;;;;709:13;;728:7;655:85::o;238:20:5:-;;;-1:-1:-1;;;;;238:20:5;;:::o;406::9:-;;;;;;;;;;;;;;;-1:-1:-1;;406:20:9;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1392:334:2;405:6:6;;1466:4:2;;-1:-1:-1;;;405:6:6;;;;404:7;396:16;;;;;;1505:10:2;1491:25;;;;:13;:25;;;;;;;;1490:26;1482:35;;;;;;1531:10;;-1:-1:-1;;;1531:10:2;;;;1527:193;;;1586:15;;1564:80;;;;;;1620:10;1564:80;;;;-1:-1:-1;;;;;1564:80:2;;;;;;;;;;;;;;;1586:15;;;;;1564:55;;:80;;;;;;;;;;;;;;1586:15;;1564:80;;;5:2:-1;;;;30:1;27;20:12;1527:193:2;1682:27;1697:3;1702:6;1682:14;:27::i;2558:150::-;2638:10;;2618:4;;-1:-1:-1;;;2638:10:2;;;;2634:68;;;2671:20;2687:3;2671:15;:20::i;1679:407:9:-;654:5:5;;-1:-1:-1;;;;;654:5:5;640:10;:19;632:28;;;;;;335:2:9;1854:42;;1846:51;;;;;;377:2;1913:28;;1905:37;;;;;;1951:15;:32;;;2028:8;;2004:33;;:9;;2028:8;;2023:2;2018:18;2004:33;:13;:33;:::i;:::-;1991:10;:46;;;2053:15;;2046:35;;;;;;;;;;;;;;;;;;;;;;;;;;1679:407;;:::o;4895:224:2:-;654:5:5;;-1:-1:-1;;;;;654:5:5;640:10;:19;632:28;;;;;;4977:5:2;;-1:-1:-1;;;;;4977:5:2;4968:8;:15;;;;;;;;;;;:27;;4988:6;4968:27;:19;:27;:::i;:::-;4959:5;;-1:-1:-1;;;;;4959:5:2;4950:8;:15;;;;;;;;;;:45;5020:12;;:24;;5037:6;5020:24;:16;:24;:::i;:::-;5005:12;:39;5054:13;;;;;;;;;;;;;;;;;5098:5;;5077:35;;;;;;;;-1:-1:-1;;;;;5098:5:2;;;;;;-1:-1:-1;;;;;;;;;;;5077:35:2;;;;;;;;;4895:224;:::o;3097:343::-;405:6:6;;3189:4:2;;-1:-1:-1;;;405:6:6;;;;404:7;396:16;;;;;;3209:10:2;;-1:-1:-1;;;3209:10:2;;;;3205:229;;;3264:15;;3242:98;;;;;;3306:10;3242:98;;;;-1:-1:-1;;;;;3242:98:2;;;;;;;;;;;;;;;3264:15;;;;;3242:63;;:98;;;;;;;;;;;;;;3264:15;;3242:98;;;5:2:-1;;;;30:1;27;20:12;3205:229:2;3378:45;3401:8;3411:11;3378:22;:45::i;5343:226::-;654:5:5;;-1:-1:-1;;;;;654:5:5;640:10;:19;632:28;;;;;;5414:12:2;;:24;;5431:6;5414:24;:16;:24;:::i;:::-;5399:12;:39;5475:5;;-1:-1:-1;;;;;5475:5:2;5466:8;:15;;;;;;;;;;;:27;;5486:6;5466:27;:19;:27;:::i;:::-;5457:5;;-1:-1:-1;;;;;5457:5:2;5448:8;:15;;;;;;;;;;;;:45;;;;5503:14;;;;;;;;;;;;;;;;;;5536:5;;5527:35;;;;;;;;5551:1;;-1:-1:-1;;;;;5536:5:2;;-1:-1:-1;;;;;;;;;;;5527:35:2;;;;;;;;;5343:226;:::o;3886:287::-;3994:10;;3964:14;;-1:-1:-1;;;3994:10:2;;;;3990:177;;;4041:15;;4027:58;;;;;;-1:-1:-1;;;;;4027:58:2;;;;;;;;;;;;;;;;4041:15;;;;;4027:40;;:58;;;;;;;;;;;;;;4041:15;;4027:58;;;5:2:-1;;;;30:1;27;20:12;3990:177:2;4123:33;4139:6;4147:8;4123:15;:33::i;219:34:9:-;;;;:::o;216:46:1:-;;;;;;;;;;;;;;;:::o;417:157::-;654:5:5;;-1:-1:-1;;;;;654:5:5;640:10;:19;632:28;;;;;;-1:-1:-1;;;;;492:27:1;;522:5;492:27;;;:13;:27;;;;;;:35;;-1:-1:-1;;492:35:1;;;537:30;;;522:5;537:30;417:157;:::o;484:42:9:-;-1:-1:-1;;484:42:9;:::o;834:169:5:-;654:5;;-1:-1:-1;;;;;654:5:5;640:10;:19;632:28;;;;;;-1:-1:-1;;;;;910:22:5;;;;902:31;;;;;;960:5;;939:37;;-1:-1:-1;;;;;939:37:5;;;;960:5;;939:37;;960:5;;939:37;982:5;:16;;-1:-1:-1;;982:16:5;-1:-1:-1;;;;;982:16:5;;;;;;;;;;834:169::o;5575:335:2:-;654:5:5;;5706:15:2;;-1:-1:-1;;;;;654:5:5;640:10;:19;632:28;;;;;;-1:-1:-1;;;;;5664:31:2;;;;;;:13;:31;;;;;;;;5656:40;;;;;;;;5724:27;5734:16;5724:9;:27::i;:::-;-1:-1:-1;;;;;5761:26:2;;5790:1;5761:26;;;;;;;;;;:30;5816:12;;5706:45;;-1:-1:-1;5816:28:2;;5706:45;5816:28;:16;:28;:::i;:::-;5801:12;:43;5854:49;;;;;;;;-1:-1:-1;;;;;5854:49:2;;;;;;;;;;;;;5575:335;;:::o;1928:183:8:-;2015:10;1995:4;2007:19;;;:7;:19;;;;;;;;-1:-1:-1;;;;;2007:29:8;;;;;;;;;;;:38;;;2051;;;;;;;1995:4;;2007:29;;2015:10;;2051:38;;;;;;;;-1:-1:-1;2102:4:8;1928:183;;;;:::o;987:688:9:-;1069:4;;;-1:-1:-1;;;;;1089:17:9;;;;1081:26;;;;;;-1:-1:-1;;;;;1131:15:9;;:8;:15;;;;;;;;;;;1121:25;;;1113:34;;;;;;-1:-1:-1;;;;;1171:14:9;;;;;;:7;:14;;;;;;;;1186:10;1171:26;;;;;;;;1161:36;;;1153:45;;;;;;1216:15;1224:6;1216:7;:15::i;:::-;1205:26;-1:-1:-1;1255:15:9;:6;1205:26;1255:15;:10;:15;:::i;:::-;-1:-1:-1;;;;;1295:15:9;;:8;:15;;;;;;;;;;;1237:33;;-1:-1:-1;1295:27:9;;1315:6;1295:27;:19;:27;:::i;:::-;-1:-1:-1;;;;;1277:15:9;;;:8;:15;;;;;;;;;;;:45;;;;1344:13;;;;;;;:29;;1362:10;1344:29;:17;:29;:::i;:::-;-1:-1:-1;;;;;1328:13:9;;;:8;:13;;;;;;;;;;;:45;;;;1383:14;;;;;:7;:14;;;;;1398:10;1383:26;;;;;;;-1:-1:-1;;;1379:127:9;;;-1:-1:-1;;;;;1461:14:9;;;;;;:7;:14;;;;;;;;1476:10;1461:26;;;;;;;;:38;;1492:6;1461:38;:30;:38;:::i;:::-;-1:-1:-1;;;;;1432:14:9;;;;;;:7;:14;;;;;;;;1447:10;1432:26;;;;;;;:67;1379:127;1527:3;-1:-1:-1;;;;;1511:32:9;1520:5;-1:-1:-1;;;;;1511:32:9;-1:-1:-1;;;;;;;;;;;1532:10:9;1511:32;;;;;;;;;;;;;;;;;;1559:1;1553:3;:7;1549:105;;;1597:5;;-1:-1:-1;;;;;1597:5:9;1588:8;:15;;;;;;;;;;;:24;;1608:3;1588:24;:19;:24;:::i;:::-;1579:5;;;-1:-1:-1;;;;;1579:5:9;;;1570:8;:15;;;;;;;;;;;;:42;;;;1636:5;;1620:27;;;;;;;1636:5;;;;1620:27;;;;-1:-1:-1;;;;;;;;;;;1620:27:9;;;;;;;;1549:105;-1:-1:-1;1666:4:9;;987:688;-1:-1:-1;;;;;987:688:9:o;3057:398:8:-;3176:10;3140:4;3168:19;;;:7;:19;;;;;;;;-1:-1:-1;;;;;3168:29:8;;;;;;;;;;3207:27;;;3203:164;;;3252:10;3276:1;3244:19;;;:7;:19;;;;;;;;-1:-1:-1;;;;;3244:29:8;;;;;;;;;:33;3203:164;;;3330:30;:8;3343:16;3330:30;:12;:30;:::i;:::-;3306:10;3298:19;;;;:7;:19;;;;;;;;-1:-1:-1;;;;;3298:29:8;;;;;;;;;:62;3203:164;3381:10;3403:19;;;;:7;:19;;;;;;;;-1:-1:-1;;;;;3372:61:8;;3403:29;;;;;;;;;;;3372:61;;;;;;;;;3381:10;3372:61;;;;;;;;;;;3446:4;3439:11;;3057:398;;;;;;:::o;1348:107:0:-;-1:-1:-1;;;;;1434:16:0;1404:15;1434:16;;;;;;;;;;;;1348:107::o;138:173:7:-;196:7;;215:6;;211:35;;;238:1;231:8;;;;211:35;-1:-1:-1;263:5:7;;;267:1;263;:5;281;;;;;;;;:10;274:18;;;315:265;373:7;462:9;478:1;474;:5;;;;;;;;;315:265;-1:-1:-1;;;;315:265:7:o;727:256:9:-;787:4;799:8;831:15;810;818:6;810:7;:15::i;:::-;799:26;-1:-1:-1;849:15:9;:6;799:26;849:15;:10;:15;:::i;:::-;831:33;;871:31;886:3;891:10;871:14;:31::i;:::-;;918:1;912:3;:7;908:54;;;944:5;;929:26;;-1:-1:-1;;;;;944:5:9;951:3;929:14;:26::i;:::-;;908:54;-1:-1:-1;974:4:9;;727:256;-1:-1:-1;;;;727:256:9:o;698:129:7:-;756:7;783:5;;;801:6;;;;794:14;;;2796:257:8;2926:10;2874:4;2918:19;;;:7;:19;;;;;;;;-1:-1:-1;;;;;2918:29:8;;;;;;;;;;:46;;2952:11;2918:46;:33;:46;:::i;:::-;2894:10;2886:19;;;;:7;:19;;;;;;;;-1:-1:-1;;;;;2886:29:8;;;;;;;;;;;;:78;;;2970:61;;;;;;2886:29;;2970:61;;;;;;;;;;;-1:-1:-1;3044:4:8;2796:257;;;;:::o;584:110:7:-;642:7;664:6;;;;657:14;;;;-1:-1:-1;684:5:7;;;584:110::o;2430:126:8:-;-1:-1:-1;;;;;2526:15:8;;;2504:7;2526:15;;;:7;:15;;;;;;;;:25;;;;;;;;;;;;;2430:126::o;767:379:0:-;830:4;-1:-1:-1;;;;;850:17:0;;;;842:26;;;;;;901:10;892:8;:20;;;;;;;;;;;882:30;;;874:39;;;;;;1015:10;1006:8;:20;;;;;;;;;;;:32;;1031:6;1006:32;:24;:32;:::i;:::-;992:10;983:8;:20;;;;;;;;;;;:55;;;;-1:-1:-1;;;;;1060:13:0;;;;;;:25;;1078:6;1060:25;:17;:25;:::i;:::-;-1:-1:-1;;;;;1044:13:0;;:8;:13;;;;;;;;;;;;:41;;;;1091:33;;;;;;;1044:13;;1100:10;;-1:-1:-1;;;;;;;;;;;1091:33:0;;;;;;;;;-1:-1:-1;1137:4:0;767:379;;;;:::o
Swarm Source
bzzr://d473a876c5942c9404e6b52df9f31bd128a25257dd1504200e45631ccff091b5
Loading...
Loading
Loading...
Loading
Net Worth in USD
$0.00
Net Worth in ETH
0
Multichain Portfolio | 34 Chains
| Chain | Token | Portfolio % | Price | Amount | Value |
|---|
Loading...
Loading
Loading...
Loading
Loading...
Loading
[ 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.