Feature Tip: Add private address tag to any address under My Name Tag !
Source Code
Latest 25 from a total of 149 transactions
| Transaction Hash |
Method
|
Block
|
From
|
|
To
|
||||
|---|---|---|---|---|---|---|---|---|---|
| Foreign Purchase | 5574533 | 2831 days ago | IN | 0 ETH | 0.0012865 | ||||
| Foreign Purchase | 5574526 | 2831 days ago | IN | 0 ETH | 0.0012865 | ||||
| Withdraw Funding | 5574523 | 2831 days ago | IN | 0 ETH | 0.00152035 | ||||
| Transfer | 5568737 | 2832 days ago | IN | 4.539 ETH | 0.00009099 | ||||
| Transfer | 5568726 | 2832 days ago | IN | 1.01 ETH | 0.00373087 | ||||
| Transfer | 5568718 | 2832 days ago | IN | 0.275 ETH | 0.00010009 | ||||
| Transfer | 5568692 | 2832 days ago | IN | 1.34 ETH | 0.00191093 | ||||
| Transfer | 5568643 | 2832 days ago | IN | 0.24 ETH | 0.00454985 | ||||
| Transfer | 5568632 | 2832 days ago | IN | 0.251 ETH | 0.0042 | ||||
| Transfer | 5568589 | 2832 days ago | IN | 22 ETH | 0.00304985 | ||||
| Transfer | 5568501 | 2832 days ago | IN | 0.25 ETH | 0.00052706 | ||||
| Transfer | 5568492 | 2832 days ago | IN | 0.25 ETH | 0.00010541 | ||||
| Transfer | 5568188 | 2832 days ago | IN | 0.5 ETH | 0.00191093 | ||||
| Foreign Purchase | 5568165 | 2832 days ago | IN | 0 ETH | 0.0046647 | ||||
| Foreign Purchase | 5568135 | 2832 days ago | IN | 0 ETH | 0.0046034 | ||||
| Foreign Purchase | 5568131 | 2832 days ago | IN | 0 ETH | 0.0045919 | ||||
| Foreign Purchase | 5568127 | 2832 days ago | IN | 0 ETH | 0.0046034 | ||||
| Foreign Purchase | 5568111 | 2832 days ago | IN | 0 ETH | 0.00464185 | ||||
| Foreign Purchase | 5568104 | 2832 days ago | IN | 0 ETH | 0.00185214 | ||||
| Transfer | 5567495 | 2832 days ago | IN | 11.73 ETH | 0.00218854 | ||||
| Transfer | 5567394 | 2832 days ago | IN | 0.3 ETH | 0.00009099 | ||||
| Transfer | 5567293 | 2832 days ago | IN | 2 ETH | 0.00373087 | ||||
| Foreign Purchase | 5566595 | 2832 days ago | IN | 0 ETH | 0.00156588 | ||||
| Transfer | 5566573 | 2832 days ago | IN | 0.1 ETH | 0.000042 | ||||
| Transfer | 5566389 | 2832 days ago | IN | 0.01 ETH | 0.002232 |
Loading...
Loading
Loading...
Loading
Cross-Chain Transactions
Loading...
Loading
Similar Match Source Code This contract matches the deployed Bytecode of the Source Code for Contract 0xCdF35C3F...5ff6f2dB1 The constructor portion of the code might be different and could alter the actual behaviour of the contract
Contract Name:
GenericCrowdsale
Compiler Version
v0.4.18+commit.9cf6e910
Optimization Enabled:
Yes with 200 runs
Other Settings:
default evmVersion
Contract Source Code (Solidity)
/**
*Submitted for verification at Etherscan.io on 2018-03-18
*/
pragma solidity ^0.4.18;
library SafeMath {
function mul(uint a, uint b) internal pure returns (uint) {
uint c = a * b;
assert(a == 0 || c / a == b);
return c;
}
function div(uint a, uint b) internal pure returns (uint) {
// assert(b > 0); // Solidity automatically throws when dividing by 0
uint c = a / b;
// assert(a == b * c + a % b); // There is no case in which this doesn't hold
return c;
}
function sub(uint a, uint b) internal pure returns (uint) {
assert(b <= a);
return a - b;
}
function add(uint a, uint b) internal pure returns (uint) {
uint c = a + b;
assert(c >= a);
return c;
}
function max64(uint64 a, uint64 b) internal pure returns (uint64) {
return a >= b ? a : b;
}
function min64(uint64 a, uint64 b) internal pure returns (uint64) {
return a < b ? a : b;
}
function max256(uint256 a, uint256 b) internal pure returns (uint256) {
return a >= b ? a : b;
}
function min256(uint256 a, uint256 b) internal pure returns (uint256) {
return a < b ? a : b;
}
}
contract ERC223 {
uint public totalSupply;
function balanceOf(address who) public view returns (uint);
function name() public view returns (string _name);
function symbol() public view returns (string _symbol);
function decimals() public view returns (uint8 _decimals);
function totalSupply() public view returns (uint256 _supply);
function transfer(address to, uint value) public returns (bool ok);
function transfer(address to, uint value, bytes data) public returns (bool ok);
function transfer(address to, uint value, bytes data, string custom_fallback) public returns (bool ok);
event Transfer(address indexed from, address indexed to, uint value);
}
contract ContractReceiver {
struct TKN {
address sender;
uint value;
bytes data;
bytes4 sig;
}
function tokenFallback(address _from, uint _value, bytes _data) public pure {
TKN memory tkn;
tkn.sender = _from;
tkn.value = _value;
tkn.data = _data;
uint32 u = uint32(_data[3]) + (uint32(_data[2]) << 8) + (uint32(_data[1]) << 16) + (uint32(_data[0]) << 24);
tkn.sig = bytes4(u);
/* tkn variable is analogue of msg variable of Ether transaction
* tkn.sender is person who initiated this token transaction (analogue of msg.sender)
* tkn.value the number of tokens that were sent (analogue of msg.value)
* tkn.data is data of token transaction (analogue of msg.data)
* tkn.sig is 4 bytes signature of function
* if data of token transaction is a function execution
*/
}
}
contract StandardToken is ERC223 {
using SafeMath for uint;
//user token balances
mapping (address => uint) balances;
//token transer permissions
mapping (address => mapping (address => uint)) allowed;
// Function that is called when a user or another contract wants to transfer funds .
function transfer(address _to, uint _value, bytes _data, string _custom_fallback) public returns (bool success) {
if(isContract(_to)) {
if (balanceOf(msg.sender) < _value) revert();
balances[msg.sender] = balanceOf(msg.sender).sub(_value);
balances[_to] = balanceOf(_to).add(_value);
assert(_to.call.value(0)(bytes4(keccak256(_custom_fallback)), msg.sender, _value, _data));
Transfer(msg.sender, _to, _value);
return true;
}
else {
return transferToAddress(_to, _value);
}
}
// Function that is called when a user or another contract wants to transfer funds .
function transfer(address _to, uint _value, bytes _data) public returns (bool success) {
if(isContract(_to)) {
return transferToContract(_to, _value, _data);
}
else {
return transferToAddress(_to, _value);
}
}
// Standard function transfer similar to ERC20 transfer with no _data .
// Added due to backwards compatibility reasons .
function transfer(address _to, uint _value) public returns (bool success) {
//standard function transfer similar to ERC20 transfer with no _data
//added due to backwards compatibility reasons
bytes memory empty;
if(isContract(_to)) {
return transferToContract(_to, _value, empty);
}
else {
return transferToAddress(_to, _value);
}
}
//assemble the given address bytecode. If bytecode exists then the _addr is a contract.
function isContract(address _addr) private view returns (bool is_contract) {
uint length;
assembly {
//retrieve the size of the code on target address, this needs assembly
length := extcodesize(_addr)
}
return (length > 0);
}
//function that is called when transaction target is an address
function transferToAddress(address _to, uint _value) private returns (bool success) {
if (balanceOf(msg.sender) < _value) revert();
balances[msg.sender] = balanceOf(msg.sender).sub(_value);
balances[_to] = balanceOf(_to).add(_value);
Transfer(msg.sender, _to, _value);
return true;
}
//function that is called when transaction target is a contract
function transferToContract(address _to, uint _value, bytes _data) private returns (bool success) {
if (balanceOf(msg.sender) < _value) revert();
balances[msg.sender] = balanceOf(msg.sender).sub(_value);
balances[_to] = balanceOf(_to).add(_value);
ContractReceiver receiver = ContractReceiver(_to);
receiver.tokenFallback(msg.sender, _value, _data);
Transfer(msg.sender, _to, _value);
return true;
}
/**
* Token transfer from from to _to (permission needed)
*/
function transferFrom(
address _from,
address _to,
uint _value
)
public
returns (bool)
{
if (balanceOf(_from) < _value && allowance(_from, msg.sender) < _value) revert();
bytes memory empty;
balances[_to] = balanceOf(_to).add(_value);
balances[_from] = balanceOf(_from).sub(_value);
allowed[_from][msg.sender] = allowance(_from, msg.sender).sub(_value);
if (isContract(_to)) {
ContractReceiver receiver = ContractReceiver(_to);
receiver.tokenFallback(msg.sender, _value, empty);
}
Transfer(_from, _to, _value);
return true;
}
/**
* Increase permission for transfer
*/
function increaseApproval(
address spender,
uint value
)
public
returns (bool)
{
allowed[msg.sender][spender] = allowed[msg.sender][spender].add(value);
return true;
}
/**
* Decrease permission for transfer
*/
function decreaseApproval(
address spender,
uint value
)
public
returns (bool)
{
allowed[msg.sender][spender] = allowed[msg.sender][spender].add(value);
return true;
}
/**
* User token balance
*/
function balanceOf(
address owner
)
public
constant
returns (uint)
{
return balances[owner];
}
/**
* User transfer permission
*/
function allowance(
address owner,
address spender
)
public
constant
returns (uint remaining)
{
return allowed[owner][spender];
}
}
contract MyDFSToken is StandardToken {
string public name = "MyDFS Token";
uint8 public decimals = 6;
string public symbol = "MyDFS";
string public version = 'H1.0';
uint256 public totalSupply;
function () external {
revert();
}
function MyDFSToken() public {
totalSupply = 125 * 1e12;
balances[msg.sender] = totalSupply;
}
// Function to access name of token .
function name() public view returns (string _name) {
return name;
}
// Function to access symbol of token .
function symbol() public view returns (string _symbol) {
return symbol;
}
// Function to access decimals of token .
function decimals() public view returns (uint8 _decimals) {
return decimals;
}
// Function to access total supply of tokens .
function totalSupply() public view returns (uint256 _totalSupply) {
return totalSupply;
}
}
contract Ownable {
address public owner;
address public newOwnerCandidate;
event OwnershipRequested(address indexed _by, address indexed _to);
event OwnershipTransferred(address indexed _from, address indexed _to);
function Ownable() public {
owner = msg.sender;
}
modifier onlyOwner() { require(msg.sender == owner); _;}
/// Proposes to transfer control of the contract to a newOwnerCandidate.
/// @param _newOwnerCandidate address The address to transfer ownership to.
function transferOwnership(address _newOwnerCandidate) external onlyOwner {
require(_newOwnerCandidate != address(0));
newOwnerCandidate = _newOwnerCandidate;
OwnershipRequested(msg.sender, newOwnerCandidate);
}
/// Accept ownership transfer. This method needs to be called by the perviously proposed owner.
function acceptOwnership() external {
if (msg.sender == newOwnerCandidate) {
owner = newOwnerCandidate;
newOwnerCandidate = address(0);
OwnershipTransferred(owner, newOwnerCandidate);
}
}
}
contract DevTokensHolder is Ownable {
using SafeMath for uint256;
uint256 collectedTokens;
GenericCrowdsale crowdsale;
MyDFSToken token;
event ClaimedTokens(address token, uint256 amount);
event TokensWithdrawn(address holder, uint256 amount);
event Debug(uint256 amount);
function DevTokensHolder(address _crowdsale, address _token, address _owner) public {
crowdsale = GenericCrowdsale(_crowdsale);
token = MyDFSToken(_token);
owner = _owner;
}
function tokenFallback(
address _from,
uint _value,
bytes _data
)
public
view
{
require(_from == owner || _from == address(crowdsale));
require(_value > 0 || _data.length > 0);
}
/// @notice The Dev (Owner) will call this method to extract the tokens
function collectTokens() public onlyOwner {
uint256 balance = token.balanceOf(address(this));
uint256 total = collectedTokens.add(balance);
uint256 finalizedTime = crowdsale.finishTime();
require(finalizedTime > 0 && getTime() > finalizedTime.add(14 days));
uint256 canExtract = total.mul(getTime().sub(finalizedTime)).div(months(12));
canExtract = canExtract.sub(collectedTokens);
if (canExtract > balance) {
canExtract = balance;
}
collectedTokens = collectedTokens.add(canExtract);
require(token.transfer(owner, canExtract));
TokensWithdrawn(owner, canExtract);
}
function months(uint256 m) internal pure returns (uint256) {
return m.mul(30 days);
}
function getTime() internal view returns (uint256) {
return now;
}
//////////
// Safety Methods
//////////
/// @notice This method can be used by the controller to extract mistakenly
/// sent tokens to this contract.
/// @param _token The address of the token contract that you want to recover
/// set to 0 in case you want to extract ether.
function claimTokens(address _token) public onlyOwner {
require(_token != address(token));
if (_token == 0x0) {
owner.transfer(this.balance);
return;
}
token = MyDFSToken(_token);
uint256 balance = token.balanceOf(this);
token.transfer(owner, balance);
ClaimedTokens(_token, balance);
}
}
contract AdvisorsTokensHolder is Ownable {
using SafeMath for uint256;
GenericCrowdsale crowdsale;
MyDFSToken token;
event ClaimedTokens(address token, uint256 amount);
event TokensWithdrawn(address holder, uint256 amount);
function AdvisorsTokensHolder(address _crowdsale, address _token, address _owner) public {
crowdsale = GenericCrowdsale(_crowdsale);
token = MyDFSToken(_token);
owner = _owner;
}
function tokenFallback(
address _from,
uint _value,
bytes _data
)
public
view
{
require(_from == owner || _from == address(crowdsale));
require(_value > 0 || _data.length > 0);
}
/// @notice The Dev (Owner) will call this method to extract the tokens
function collectTokens() public onlyOwner {
uint256 balance = token.balanceOf(address(this));
require(balance > 0);
uint256 finalizedTime = crowdsale.finishTime();
require(finalizedTime > 0 && getTime() > finalizedTime.add(14 days));
require(token.transfer(owner, balance));
TokensWithdrawn(owner, balance);
}
function getTime() internal view returns (uint256) {
return now;
}
//////////
// Safety Methods
//////////
/// @notice This method can be used by the controller to extract mistakenly
/// sent tokens to this contract.
/// @param _token The address of the token contract that you want to recover
/// set to 0 in case you want to extract ether.
function claimTokens(address _token) public onlyOwner {
require(_token != address(token));
if (_token == 0x0) {
owner.transfer(this.balance);
return;
}
token = MyDFSToken(_token);
uint256 balance = token.balanceOf(this);
token.transfer(owner, balance);
ClaimedTokens(_token, balance);
}
}
contract GenericCrowdsale is Ownable {
using SafeMath for uint256;
//Crowrdsale states
enum State { Initialized, PreIco, PreIcoFinished, Ico, IcoFinished}
struct Discount {
uint256 amount;
uint256 value;
}
//ether trasfered to
address public beneficiary;
//Crowrdsale state
State public state;
//Hard goal in Wei
uint public hardFundingGoal;
//soft goal in Wei
uint public softFundingGoal;
//gathered Ether amount in Wei
uint public amountRaised;
//ICO/PreICO start timestamp in seconds
uint public started;
//Crowdsale finish time
uint public finishTime;
//price for 1 token in Wei
uint public price;
//minimum purchase value in Wei
uint public minPurchase;
//Token cantract
ERC223 public tokenReward;
//Wei balances for refund if ICO failed
mapping(address => uint256) public balances;
//Emergency stop sell
bool emergencyPaused = false;
//Soft cap reached
bool softCapReached = false;
//dev holder
DevTokensHolder public devTokensHolder;
//advisors holder
AdvisorsTokensHolder public advisorsTokensHolder;
//Disconts
Discount[] public discounts;
//price overhead for next stages
uint8[2] public preIcoTokenPrice = [70,75];
//price overhead for next stages
uint8[4] public icoTokenPrice = [100,120,125,130];
event TokenPurchased(address investor, uint sum, uint tokensCount, uint discountTokens);
event PreIcoLimitReached(uint totalAmountRaised);
event SoftGoalReached(uint totalAmountRaised);
event HardGoalReached(uint totalAmountRaised);
event Debug(uint num);
//Sale is active
modifier sellActive() {
require(
!emergencyPaused
&& (state == State.PreIco || state == State.Ico)
&& amountRaised < hardFundingGoal
);
_; }
//Soft cap not reached
modifier goalNotReached() { require(state == State.IcoFinished && amountRaised < softFundingGoal); _; }
/**
* Constrctor function
*/
function GenericCrowdsale(
address ifSuccessfulSendTo,
address addressOfTokenUsedAsReward
) public {
require(ifSuccessfulSendTo != address(0)
&& addressOfTokenUsedAsReward != address(0));
beneficiary = ifSuccessfulSendTo;
tokenReward = ERC223(addressOfTokenUsedAsReward);
state = State.Initialized;
}
function tokenFallback(
address _from,
uint _value,
bytes _data
)
public
view
{
require(_from == owner);
require(_value > 0 || _data.length > 0);
}
/**
* Start PreICO
*/
function preIco(
uint hardFundingGoalInEthers,
uint minPurchaseInFinney,
uint costOfEachToken,
uint256[] discountEthers,
uint256[] discountValues
)
external
onlyOwner
{
require(hardFundingGoalInEthers > 0
&& costOfEachToken > 0
&& state == State.Initialized
&& discountEthers.length == discountValues.length);
hardFundingGoal = hardFundingGoalInEthers.mul(1 ether);
minPurchase = minPurchaseInFinney.mul(1 finney);
price = costOfEachToken;
initDiscounts(discountEthers, discountValues);
state = State.PreIco;
started = now;
}
/**
* Start ICO
*/
function ico(
uint softFundingGoalInEthers,
uint hardFundingGoalInEthers,
uint minPurchaseInFinney,
uint costOfEachToken,
uint256[] discountEthers,
uint256[] discountValues
)
external
onlyOwner
{
require(softFundingGoalInEthers > 0
&& hardFundingGoalInEthers > 0
&& hardFundingGoalInEthers > softFundingGoalInEthers
&& costOfEachToken > 0
&& state < State.Ico
&& discountEthers.length == discountValues.length);
softFundingGoal = softFundingGoalInEthers.mul(1 ether);
hardFundingGoal = hardFundingGoalInEthers.mul(1 ether);
minPurchase = minPurchaseInFinney.mul(1 finney);
price = costOfEachToken;
delete discounts;
initDiscounts(discountEthers, discountValues);
state = State.Ico;
started = now;
}
/**
* Finish ICO / PreICO
*/
function finishSale() external onlyOwner {
require(state == State.PreIco || state == State.Ico);
if (state == State.PreIco)
state = State.PreIcoFinished;
else
state = State.IcoFinished;
}
/**
* Admin can pause token sell
*/
function emergencyPause() external onlyOwner {
emergencyPaused = true;
}
/**
* Admin can unpause token sell
*/
function emergencyUnpause() external onlyOwner {
emergencyPaused = false;
}
/**
* Transfer dev tokens to vesting wallet
*/
function sendDevTokens() external onlyOwner returns(address) {
require(successed());
devTokensHolder = new DevTokensHolder(address(this), address(tokenReward), owner);
tokenReward.transfer(address(devTokensHolder), 12500 * 1e9);
return address(devTokensHolder);
}
/**
* Transfer dev tokens to vesting wallet
*/
function sendAdvisorsTokens() external onlyOwner returns(address) {
require(successed());
advisorsTokensHolder = new AdvisorsTokensHolder(address(this), address(tokenReward), owner);
tokenReward.transfer(address(advisorsTokensHolder), 12500 * 1e9);
return address(advisorsTokensHolder);
}
/**
* Admin can withdraw ether beneficiary address
*/
function withdrawFunding() external onlyOwner {
require((state == State.PreIco || successed()));
beneficiary.transfer(this.balance);
}
/**
* Different coins purchase
*/
function foreignPurchase(address user, uint256 amount)
external
onlyOwner
sellActive
{
buyTokens(user, amount);
checkGoals();
}
/**
* Claim refund ether in soft goal not reached
*/
function claimRefund()
external
goalNotReached
{
uint256 amount = balances[msg.sender];
balances[msg.sender] = 0;
if (amount > 0){
if (!msg.sender.send(amount)) {
balances[msg.sender] = amount;
}
}
}
/**
* Payment transaction
*/
function ()
external
payable
sellActive
{
require(msg.value > 0);
require(msg.value >= minPurchase);
uint amount = msg.value;
if (amount > hardFundingGoal.sub(amountRaised)) {
uint availableAmount = hardFundingGoal.sub(amountRaised);
msg.sender.transfer(amount.sub(availableAmount));
amount = availableAmount;
}
buyTokens(msg.sender, amount);
checkGoals();
}
/**
* Transfer tokens to user
*/
function buyTokens(
address user,
uint256 amount
) internal {
require(amount <= hardFundingGoal.sub(amountRaised));
uint256 passedSeconds = getTime().sub(started);
uint256 week = 0;
if (passedSeconds >= 604800){
week = passedSeconds.div(604800);
}
Debug(week);
uint256 tokenPrice;
if (state == State.Ico){
uint256 cup = amountRaised.mul(4).div(hardFundingGoal);
if (cup > week)
week = cup;
if (week >= 4)
week = 3;
tokenPrice = price.mul(icoTokenPrice[week]).div(100);
} else {
if (week >= 2)
week = 1;
tokenPrice = price.mul(preIcoTokenPrice[week]).div(100);
}
Debug(tokenPrice);
uint256 count = amount.div(tokenPrice);
uint256 discount = getDiscountOf(amount);
uint256 discountBonus = discount.mul(count).div(100);
count = count.add(discountBonus);
count = ceilTokens(count);
require(tokenReward.transfer(user, count));
balances[user] = balances[user].add(amount);
amountRaised = amountRaised.add(amount);
TokenPurchased(user, amount, count, discountBonus);
}
/**
* Define distount percents for different token amounts
*/
function ceilTokens(
uint256 num
)
public
pure
returns(uint256)
{
uint256 part = num % 1000000;
return part > 0 ? num.div(1000000).mul(1000000) + 1000000 : num;
}
/**
* ICO is finished successfully
*/
function successed()
public
view
returns(bool)
{
return state == State.IcoFinished && amountRaised >= softFundingGoal;
}
/**
* Define distount percents for different token amounts
*/
function initDiscounts(
uint256[] discountEthers,
uint256[] discountValues
) internal {
for (uint256 i = 0; i < discountEthers.length; i++) {
discounts.push(Discount(discountEthers[i].mul(1 ether), discountValues[i]));
}
}
/**
* Get discount percent for number of tokens
*/
function getDiscountOf(
uint256 _amount
)
public
view
returns (uint256)
{
if (discounts.length > 0)
for (uint256 i = 0; i < discounts.length; i++) {
if (_amount >= discounts[i].amount) {
return discounts[i].value;
}
}
return 0;
}
/**
* Check ICO goals achievement
*/
function checkGoals() internal {
if (state == State.PreIco) {
if (amountRaised >= hardFundingGoal) {
PreIcoLimitReached(amountRaised);
state = State.PreIcoFinished;
}
} else {
if (!softCapReached && amountRaised >= softFundingGoal){
softCapReached = true;
SoftGoalReached(amountRaised);
}
if (amountRaised >= hardFundingGoal) {
finishTime = now;
HardGoalReached(amountRaised);
state = State.IcoFinished;
}
}
}
function getTime() internal view returns (uint) {
return now;
}
}Contract Security Audit
- No Contract Security Audit Submitted- Submit Audit Here
Contract ABI
API[{"constant":true,"inputs":[],"name":"started","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"hardFundingGoalInEthers","type":"uint256"},{"name":"minPurchaseInFinney","type":"uint256"},{"name":"costOfEachToken","type":"uint256"},{"name":"discountEthers","type":"uint256[]"},{"name":"discountValues","type":"uint256[]"}],"name":"preIco","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[{"name":"","type":"address"}],"name":"balances","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"num","type":"uint256"}],"name":"ceilTokens","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"pure","type":"function"},{"constant":false,"inputs":[{"name":"softFundingGoalInEthers","type":"uint256"},{"name":"hardFundingGoalInEthers","type":"uint256"},{"name":"minPurchaseInFinney","type":"uint256"},{"name":"costOfEachToken","type":"uint256"},{"name":"discountEthers","type":"uint256[]"},{"name":"discountValues","type":"uint256[]"}],"name":"ico","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[],"name":"withdrawFunding","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"minPurchase","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"beneficiary","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"","type":"uint256"}],"name":"preIcoTokenPrice","outputs":[{"name":"","type":"uint8"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"","type":"uint256"}],"name":"icoTokenPrice","outputs":[{"name":"","type":"uint8"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[],"name":"emergencyUnpause","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[],"name":"emergencyPause","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"user","type":"address"},{"name":"amount","type":"uint256"}],"name":"foreignPurchase","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"finishTime","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"devTokensHolder","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"tokenReward","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"advisorsTokensHolder","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[],"name":"acceptOwnership","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"amountRaised","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"owner","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[],"name":"finishSale","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[],"name":"sendAdvisorsTokens","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"price","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"successed","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[],"name":"claimRefund","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[{"name":"","type":"uint256"}],"name":"discounts","outputs":[{"name":"amount","type":"uint256"},{"name":"value","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"_from","type":"address"},{"name":"_value","type":"uint256"},{"name":"_data","type":"bytes"}],"name":"tokenFallback","outputs":[],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"_amount","type":"uint256"}],"name":"getDiscountOf","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"state","outputs":[{"name":"","type":"uint8"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[],"name":"sendDevTokens","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"hardFundingGoal","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"newOwnerCandidate","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"softFundingGoal","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"_newOwnerCandidate","type":"address"}],"name":"transferOwnership","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"inputs":[{"name":"ifSuccessfulSendTo","type":"address"},{"name":"addressOfTokenUsedAsReward","type":"address"}],"payable":false,"stateMutability":"nonpayable","type":"constructor"},{"payable":true,"stateMutability":"payable","type":"fallback"},{"anonymous":false,"inputs":[{"indexed":false,"name":"investor","type":"address"},{"indexed":false,"name":"sum","type":"uint256"},{"indexed":false,"name":"tokensCount","type":"uint256"},{"indexed":false,"name":"discountTokens","type":"uint256"}],"name":"TokenPurchased","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"name":"totalAmountRaised","type":"uint256"}],"name":"PreIcoLimitReached","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"name":"totalAmountRaised","type":"uint256"}],"name":"SoftGoalReached","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"name":"totalAmountRaised","type":"uint256"}],"name":"HardGoalReached","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"name":"num","type":"uint256"}],"name":"Debug","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"_by","type":"address"},{"indexed":true,"name":"_to","type":"address"}],"name":"OwnershipRequested","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"_from","type":"address"},{"indexed":true,"name":"_to","type":"address"}],"name":"OwnershipTransferred","type":"event"}]Contract Creation Code
0x60606040908152600c805461ffff19169055805190810160405260468152604b60208201526200003490600f9060026200011b565b50608060405190810160409081526064825260786020830152607d90820152608260608201526200006a9060109060046200011b565b5034156200007757600080fd5b60405160408062002aaa833981016040528080519190602001805160008054600160a060020a03191633600160a060020a039081169190911790915590925083161580159150620000d05750600160a060020a03811615155b1515620000dc57600080fd5b60028054600a8054600160a060020a0319908116600160a060020a039586161790915560a060020a60ff021991169390921692909217169055620001d9565b600183019183908215620001a35791602002820160005b838211156200017257835183826101000a81548160ff021916908360ff160217905550926020019260010160208160000104928301926001030262000132565b8015620001a15782816101000a81549060ff021916905560010160208160000104928301926001030262000172565b505b50620001b1929150620001b5565b5090565b620001d691905b80821115620001b157805460ff19168155600101620001bc565b90565b6128c180620001e96000396000f3006060604052600436106101925763ffffffff60e060020a6000350416631f2698ab81146102aa5780632005db6d146102cf57806327e235e314610307578063285da5a9146103265780632bd579fc1461033c57806330b9af981461037657806333b5b62e1461038957806338af3eed1461039c5780634839ac30146103cb578063497d42f3146103f75780634a4e3bd51461040d57806351858e27146104205780635908984b146104335780635958611e1461045557806359be9cc0146104685780636e66f6e91461047b57806378e7058e1461048e57806379ba5097146104a15780637b3e5e7b146104b45780638da5cb5b146104c75780638f86f5ea146104da57806399b6f5a1146104ed578063a035b1fe14610500578063a19b549314610513578063b5545a3c1461053a578063bae6a6901461054d578063c0ee0b8a1461057b578063c118a9de146105e0578063c19d93fb146105f6578063c306cb901461062d578063cea10af714610640578063d091b55014610653578063dae392ee14610666578063f2fde38b14610679575b600c54600090819060ff161580156101e25750600160025460a060020a900460ff1660048111156101bf57fe5b14806101e25750600360025460a060020a900460ff1660048111156101e057fe5b145b80156101f15750600354600554105b15156101fc57600080fd5b6000341161020957600080fd5b60095434101561021857600080fd5b6005546003543493506102309163ffffffff61069816565b8211156102945760055460035461024c9163ffffffff61069816565b9050600160a060020a0333166108fc61026b848463ffffffff61069816565b9081150290604051600060405180830381858888f19350505050151561029057600080fd5b8091505b61029e33836106aa565b6102a66109e0565b5050005b34156102b557600080fd5b6102bd610b2f565b60405190815260200160405180910390f35b34156102da57600080fd5b6103056004803590602480359160443591606435808201929081013591608435908101910135610b35565b005b341561031257600080fd5b6102bd600160a060020a0360043516610c5b565b341561033157600080fd5b6102bd600435610c6d565b341561034757600080fd5b61030560048035906024803591604435916064359160843580830192908201359160a435918201910135610cb4565b341561038157600080fd5b610305610e2b565b341561039457600080fd5b6102bd610eb3565b34156103a757600080fd5b6103af610eb9565b604051600160a060020a03909116815260200160405180910390f35b34156103d657600080fd5b6103e1600435610ec8565b60405160ff909116815260200160405180910390f35b341561040257600080fd5b6103e1600435610eef565b341561041857600080fd5b610305610efc565b341561042b57600080fd5b610305610f23565b341561043e57600080fd5b610305600160a060020a0360043516602435610f4d565b341561046057600080fd5b6102bd610fe3565b341561047357600080fd5b6103af610fe9565b341561048657600080fd5b6103af610ffe565b341561049957600080fd5b6103af61100d565b34156104ac57600080fd5b61030561101c565b34156104bf57600080fd5b6102bd61109a565b34156104d257600080fd5b6103af6110a0565b34156104e557600080fd5b6103056110af565b34156104f857600080fd5b6103af61116a565b341561050b57600080fd5b6102bd6112a9565b341561051e57600080fd5b6105266112af565b604051901515815260200160405180910390f35b341561054557600080fd5b6103056112e1565b341561055857600080fd5b61056360043561138a565b60405191825260208201526040908101905180910390f35b341561058657600080fd5b61030560048035600160a060020a03169060248035919060649060443590810190830135806020601f820181900481020160405190810160405281815292919060208401838380828437509496506113b695505050505050565b34156105eb57600080fd5b6102bd6004356113f0565b341561060157600080fd5b61060961146c565b6040518082600481111561061957fe5b60ff16815260200191505060405180910390f35b341561063857600080fd5b6103af61147c565b341561064b57600080fd5b6102bd6115cf565b341561065e57600080fd5b6103af6115d5565b341561067157600080fd5b6102bd6115e4565b341561068457600080fd5b610305600160a060020a03600435166115ea565b6000828211156106a457fe5b50900390565b60008060008060008060006106cc60055460035461069890919063ffffffff16565b8811156106d857600080fd5b6106f26006546106e661167d565b9063ffffffff61069816565b96506000955062093a808710610718576107158762093a8063ffffffff61168116565b95505b7f8a36f5a234186d446e36a7df36ace663a05a580d9bea2dd899c6dd76a075d5fa8660405190815260200160405180910390a1600360025460a060020a900460ff16600481111561076557fe5b14156107ed57610793600354610787600460055461169890919063ffffffff16565b9063ffffffff61168116565b9350858411156107a1578395505b600486106107ae57600395505b6107e66064610787601089600481106107c357fe5b6020808204909201546008549260ff92066101000a90041663ffffffff61169816565b9450610812565b600286106107fa57600195505b61080f6064610787600f89600281106107c357fe5b94505b7f8a36f5a234186d446e36a7df36ace663a05a580d9bea2dd899c6dd76a075d5fa8560405190815260200160405180910390a1610855888663ffffffff61168116565b9250610860886113f0565b91506108776064610787848663ffffffff61169816565b9050610889838263ffffffff6116c316565b925061089483610c6d565b600a54909350600160a060020a031663a9059cbb8a8560006040516020015260405160e060020a63ffffffff8516028152600160a060020a0390921660048301526024820152604401602060405180830381600087803b15156108f657600080fd5b6102c65a03f1151561090757600080fd5b50505060405180519050151561091c57600080fd5b600160a060020a0389166000908152600b6020526040902054610945908963ffffffff6116c316565b600160a060020a038a166000908152600b6020526040902055600554610971908963ffffffff6116c316565b6005557f2b0c4dfbf2e34a2292e9110d6ea90d7c78f54b3aebe3974d2db7197308f21ff8898985846040518085600160a060020a0316600160a060020a0316815260200184815260200183815260200182815260200194505050505060405180910390a1505050505050505050565b600160025460a060020a900460ff1660048111156109fa57fe5b1415610a625760035460055410610a5d577ff90a42045b12aef1cf33ae920628357639512bb8d1a943f2a8dda7d0b8088c2060055460405190815260200160405180910390a160028054819060a060020a60ff02191660a060020a825b02179055505b610b2d565b600c54610100900460ff16158015610a7e575060045460055410155b15610ac957600c805461ff0019166101001790556005547f50c73740b6808484aba715b361644d9e478fabf4cbddf8e122992ca9b71444119060405190815260200160405180910390a15b60035460055410610b2d57426007556005547fa1f724757cf717a688dc12d91540a30b9e166a778344d628ffe6b30f8e88bde29060405190815260200160405180910390a1600280546004919060a060020a60ff02191660a060020a835b02179055505b565b60065481565b60005433600160a060020a03908116911614610b5057600080fd5b600087118015610b605750600085115b8015610b835750600060025460a060020a900460ff166004811115610b8157fe5b145b8015610b8e57508281145b1515610b9957600080fd5b610bb187670de0b6b3a764000063ffffffff61169816565b600355610bcb8666038d7ea4c6800063ffffffff61169816565b6009556008859055610c388484806020808202016040519081016040528093929190818152602001838360200280828437820191505050505050838380806020026020016040519081016040528093929190818152602001838360200280828437506116d2945050505050565b50506002805460a060020a60ff02191660a060020a179055505042600655505050565b600b6020526000908152604090205481565b6000620f42408206818111610c825782610cab565b610ca5620f4240610c99858263ffffffff61168116565b9063ffffffff61169816565b620f4240015b91505b50919050565b60005433600160a060020a03908116911614610ccf57600080fd5b600088118015610cdf5750600087115b8015610cea57508787115b8015610cf65750600085115b8015610d195750600360025460a060020a900460ff166004811115610d1757fe5b105b8015610d2457508281145b1515610d2f57600080fd5b610d4788670de0b6b3a764000063ffffffff61169816565b600455610d6287670de0b6b3a764000063ffffffff61169816565b600355610d7c8666038d7ea4c6800063ffffffff61169816565b6009556008859055610d90600e6000611775565b610df6848480806020026020016040519081016040528093929190818152602001838360200280828437820191505050505050838380806020026020016040519081016040528093929190818152602001838360200280828437506116d2945050505050565b50506002805460a060020a60ff0219167403000000000000000000000000000000000000000017905550504260065550505050565b60005433600160a060020a03908116911614610e4657600080fd5b600160025460a060020a900460ff166004811115610e6057fe5b1480610e6f5750610e6f6112af565b1515610e7a57600080fd5b600254600160a060020a039081169030163180156108fc0290604051600060405180830381858888f193505050501515610b2d57600080fd5b60095481565b600254600160a060020a031681565b600f8160028110610ed557fe5b60209182820401919006915054906101000a900460ff1681565b60108160048110610ed557fe5b60005433600160a060020a03908116911614610f1757600080fd5b600c805460ff19169055565b60005433600160a060020a03908116911614610f3e57600080fd5b600c805460ff19166001179055565b60005433600160a060020a03908116911614610f6857600080fd5b600c5460ff16158015610fb35750600160025460a060020a900460ff166004811115610f9057fe5b1480610fb35750600360025460a060020a900460ff166004811115610fb157fe5b145b8015610fc25750600354600554105b1515610fcd57600080fd5b610fd782826106aa565b610fdf6109e0565b5050565b60075481565b600c54620100009004600160a060020a031681565b600a54600160a060020a031681565b600d54600160a060020a031681565b60015433600160a060020a0390811691161415610b2d576001805460008054600160a060020a0380841673ffffffffffffffffffffffffffffffffffffffff19928316178084559190931690935591167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a3565b60055481565b600054600160a060020a031681565b60005433600160a060020a039081169116146110ca57600080fd5b600160025460a060020a900460ff1660048111156110e457fe5b14806111075750600360025460a060020a900460ff16600481111561110557fe5b145b151561111257600080fd5b600160025460a060020a900460ff16600481111561112c57fe5b141561114d5760028054819060a060020a60ff02191660a060020a82610a57565b600280546004919060a060020a60ff02191660a060020a83610b27565b6000805433600160a060020a0390811691161461118657600080fd5b61118e6112af565b151561119957600080fd5b600a546000543091600160a060020a0390811691166111b6611796565b600160a060020a039384168152918316602083015290911660408083019190915260609091019051809103906000f08015156111f157600080fd5b600d805473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a039283161790819055600a5482169163a9059cbb9116650b5e620f480060006040516020015260405160e060020a63ffffffff8516028152600160a060020a0390921660048301526024820152604401602060405180830381600087803b151561127c57600080fd5b6102c65a03f1151561128d57600080fd5b50505060405180515050600d54600160a060020a031690505b90565b60085481565b6000600460025460a060020a900460ff1660048111156112cb57fe5b1480156112dc575060045460055410155b905090565b6000600460025460a060020a900460ff1660048111156112fd57fe5b14801561130d5750600454600554105b151561131857600080fd5b50600160a060020a0333166000908152600b602052604081208054908290559081111561138757600160a060020a03331681156108fc0282604051600060405180830381858888f19350505050151561138757600160a060020a0333166000908152600b602052604090208190555b50565b600e80548290811061139857fe5b60009182526020909120600290910201805460019091015490915082565b600054600160a060020a038481169116146113d057600080fd5b60008211806113e0575060008151115b15156113eb57600080fd5b505050565b6000806000600e805490501115611463575060005b600e5481101561146357600e80548290811061141d57fe5b6000918252602090912060029091020154831061145b57600e80548290811061144257fe5b9060005260206000209060020201600101549150610cae565b600101611405565b50600092915050565b60025460a060020a900460ff1681565b6000805433600160a060020a0390811691161461149857600080fd5b6114a06112af565b15156114ab57600080fd5b600a546000543091600160a060020a0390811691166114c86117a6565b600160a060020a039384168152918316602083015290911660408083019190915260609091019051809103906000f080151561150357600080fd5b600c805475ffffffffffffffffffffffffffffffffffffffff0000191662010000600160a060020a0393841681029190911791829055600a5483169263a9059cbb929190910416650b5e620f480060006040516020015260405160e060020a63ffffffff8516028152600160a060020a0390921660048301526024820152604401602060405180830381600087803b151561159d57600080fd5b6102c65a03f115156115ae57600080fd5b50505060405180515050600c54620100009004600160a060020a0316919050565b60035481565b600154600160a060020a031681565b60045481565b60005433600160a060020a0390811691161461160557600080fd5b600160a060020a038116151561161a57600080fd5b6001805473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a0383811691909117918290559081169033167f13a4b3bc0d5234dd3d87c9f1557d8faefa37986da62c36ba49309e2fb2c9aec460405160405180910390a350565b4290565b600080828481151561168f57fe5b04949350505050565b60008282028315806116b457508284828115156116b157fe5b04145b15156116bc57fe5b9392505050565b6000828201838110156116bc57fe5b60005b82518110156113eb57600e8054600181016116f083826117b6565b916000526020600020906002020160006040805190810160405280611739670de0b6b3a764000089888151811061172357fe5b906020019060200201519063ffffffff61169816565b815260200186868151811061174a57fe5b9060200190602002015190529190508151815560208201516001918201559290920191506116d59050565b508054600082556002029060005260206000209081019061138791906117de565b6040516107d08061180383390190565b6040516108c380611fd383390190565b8154818355818115116113eb576002028160020283600052602060002091820191016113eb91905b6112a691905b808211156117fe57600080825560018201556002016117e4565b509056006060604052341561000f57600080fd5b6040516060806107d08339810160405280805191906020018051919060200180516000805460028054600160a060020a0319908116600160a060020a03998a16179091556003805482169789169790971790965585163387161790941694169390931782555061074a9150819061008690396000f3006060604052600436106100695763ffffffff60e060020a60003504166379ba5097811461006e5780638433acd1146100835780638da5cb5b14610096578063c0ee0b8a146100c5578063d091b5501461012a578063df8de3e71461013d578063f2fde38b1461015c575b600080fd5b341561007957600080fd5b61008161017b565b005b341561008e57600080fd5b6100816101fa565b34156100a157600080fd5b6100a9610413565b604051600160a060020a03909116815260200160405180910390f35b34156100d057600080fd5b61008160048035600160a060020a03169060248035919060649060443590810190830135806020601f8201819004810201604051908101604052818152929190602084018383808284375094965061042295505050505050565b341561013557600080fd5b6100a9610476565b341561014857600080fd5b610081600160a060020a0360043516610485565b341561016757600080fd5b610081600160a060020a0360043516610671565b60015433600160a060020a03908116911614156101f8576001805460008054600160a060020a0380841673ffffffffffffffffffffffffffffffffffffffff19928316178084559190931690935591167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35b565b60008054819033600160a060020a0390811691161461021857600080fd5b600354600160a060020a03166370a082313060006040516020015260405160e060020a63ffffffff8416028152600160a060020a039091166004820152602401602060405180830381600087803b151561027157600080fd5b6102c65a03f1151561028257600080fd5b50505060405180519250506000821161029a57600080fd5b600254600160a060020a0316635958611e6000604051602001526040518163ffffffff1660e060020a028152600401602060405180830381600087803b15156102e257600080fd5b6102c65a03f115156102f357600080fd5b5050506040518051915050600081118015610326575061031c816212750063ffffffff61070416565b61032461071a565b115b151561033157600080fd5b60035460008054600160a060020a039283169263a9059cbb9291169085906040516020015260405160e060020a63ffffffff8516028152600160a060020a0390921660048301526024820152604401602060405180830381600087803b151561039957600080fd5b6102c65a03f115156103aa57600080fd5b5050506040518051905015156103bf57600080fd5b6000547f6352c5382c4a4578e712449ca65e83cdb392d045dfcf1cad9615189db2da244b90600160a060020a031683604051600160a060020a03909216825260208201526040908101905180910390a15050565b600054600160a060020a031681565b600054600160a060020a038481169116148061044b5750600254600160a060020a038481169116145b151561045657600080fd5b6000821180610466575060008151115b151561047157600080fd5b505050565b600154600160a060020a031681565b6000805433600160a060020a039081169116146104a157600080fd5b600354600160a060020a03838116911614156104bc57600080fd5b600160a060020a038216151561050a57600054600160a060020a039081169030163180156108fc0290604051600060405180830381858888f19350505050151561050557600080fd5b61066d565b6003805473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a038481169190911791829055166370a082313060006040516020015260405160e060020a63ffffffff8416028152600160a060020a039091166004820152602401602060405180830381600087803b151561058657600080fd5b6102c65a03f1151561059757600080fd5b505050604051805160035460008054929450600160a060020a03918216935063a9059cbb929091169084906040516020015260405160e060020a63ffffffff8516028152600160a060020a0390921660048301526024820152604401602060405180830381600087803b151561060c57600080fd5b6102c65a03f1151561061d57600080fd5b50505060405180519050507fe9aa550fd75d0d28e07fa9dd67d3ae705678776f6c4a75abd09534f93e7d79078282604051600160a060020a03909216825260208201526040908101905180910390a15b5050565b60005433600160a060020a0390811691161461068c57600080fd5b600160a060020a03811615156106a157600080fd5b6001805473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a0383811691909117918290559081169033167f13a4b3bc0d5234dd3d87c9f1557d8faefa37986da62c36ba49309e2fb2c9aec460405160405180910390a350565b60008282018381101561071357fe5b9392505050565b42905600a165627a7a723058202eddf85802f8e6b9b462965facd98422aa29e435715fb614f3084de33a7c512300296060604052341561000f57600080fd5b6040516060806108c38339810160405280805191906020018051919060200180516000805460038054600160a060020a0319908116600160a060020a03998a16179091556004805482169789169790971790965585163387161790941694169390931782555061083d9150819061008690396000f3006060604052600436106100695763ffffffff60e060020a60003504166379ba5097811461006e5780638433acd1146100835780638da5cb5b14610096578063c0ee0b8a146100c5578063d091b5501461012a578063df8de3e71461013d578063f2fde38b1461015c575b600080fd5b341561007957600080fd5b61008161017b565b005b341561008e57600080fd5b6100816101fa565b34156100a157600080fd5b6100a961049e565b604051600160a060020a03909116815260200160405180910390f35b34156100d057600080fd5b61008160048035600160a060020a03169060248035919060649060443590810190830135806020601f820181900481020160405190810160405281815292919060208401838380828437509496506104ad95505050505050565b341561013557600080fd5b6100a9610501565b341561014857600080fd5b610081600160a060020a0360043516610510565b341561016757600080fd5b610081600160a060020a03600435166106fc565b60015433600160a060020a03908116911614156101f8576001805460008054600160a060020a0380841673ffffffffffffffffffffffffffffffffffffffff19928316178084559190931690935591167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35b565b6000805481908190819033600160a060020a0390811691161461021c57600080fd5b600454600160a060020a03166370a082313060006040516020015260405160e060020a63ffffffff8416028152600160a060020a039091166004820152602401602060405180830381600087803b151561027557600080fd5b6102c65a03f1151561028657600080fd5b50505060405180516002549095506102a591508563ffffffff61078f16565b600354909350600160a060020a0316635958611e6000604051602001526040518163ffffffff1660e060020a028152600401602060405180830381600087803b15156102f057600080fd5b6102c65a03f1151561030157600080fd5b5050506040518051925050600082118015610334575061032a826212750063ffffffff61078f16565b6103326107a5565b115b151561033f57600080fd5b61038061034c600c6107a9565b6103746103678561035b6107a5565b9063ffffffff6107c416565b869063ffffffff6107d616565b9063ffffffff6107fa16565b9050610397600254826107c490919063ffffffff16565b9050838111156103a45750825b6002546103b7908263ffffffff61078f16565b60025560045460008054600160a060020a039283169263a9059cbb9291169084906040516020015260405160e060020a63ffffffff8516028152600160a060020a0390921660048301526024820152604401602060405180830381600087803b151561042257600080fd5b6102c65a03f1151561043357600080fd5b50505060405180519050151561044857600080fd5b6000547f6352c5382c4a4578e712449ca65e83cdb392d045dfcf1cad9615189db2da244b90600160a060020a031682604051600160a060020a03909216825260208201526040908101905180910390a150505050565b600054600160a060020a031681565b600054600160a060020a03848116911614806104d65750600354600160a060020a038481169116145b15156104e157600080fd5b60008211806104f1575060008151115b15156104fc57600080fd5b505050565b600154600160a060020a031681565b6000805433600160a060020a0390811691161461052c57600080fd5b600454600160a060020a038381169116141561054757600080fd5b600160a060020a038216151561059557600054600160a060020a039081169030163180156108fc0290604051600060405180830381858888f19350505050151561059057600080fd5b6106f8565b6004805473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a038481169190911791829055166370a082313060006040516020015260405160e060020a63ffffffff8416028152600160a060020a039091166004820152602401602060405180830381600087803b151561061157600080fd5b6102c65a03f1151561062257600080fd5b505050604051805160045460008054929450600160a060020a03918216935063a9059cbb929091169084906040516020015260405160e060020a63ffffffff8516028152600160a060020a0390921660048301526024820152604401602060405180830381600087803b151561069757600080fd5b6102c65a03f115156106a857600080fd5b50505060405180519050507fe9aa550fd75d0d28e07fa9dd67d3ae705678776f6c4a75abd09534f93e7d79078282604051600160a060020a03909216825260208201526040908101905180910390a15b5050565b60005433600160a060020a0390811691161461071757600080fd5b600160a060020a038116151561072c57600080fd5b6001805473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a0383811691909117918290559081169033167f13a4b3bc0d5234dd3d87c9f1557d8faefa37986da62c36ba49309e2fb2c9aec460405160405180910390a350565b60008282018381101561079e57fe5b9392505050565b4290565b60006107be8262278d0063ffffffff6107d616565b92915050565b6000828211156107d057fe5b50900390565b60008282028315806107f257508284828115156107ef57fe5b04145b151561079e57fe5b600080828481151561080857fe5b049493505050505600a165627a7a72305820cfbfbcb071eb8a5ab42661258cda33235ad5b855ae0669786bd8e97fe62049f40029a165627a7a72305820e3c85b6dfa4c20ae31317cbe8254281d393ba5c1d99f409078fb9254c6551ebf00290000000000000000000000007c1d56a4cc68440c124ab04cbd917fa869097f63000000000000000000000000d184b10ee51be2c6bf45214b048f311a15296cae
Deployed Bytecode
0x6060604052600436106101925763ffffffff60e060020a6000350416631f2698ab81146102aa5780632005db6d146102cf57806327e235e314610307578063285da5a9146103265780632bd579fc1461033c57806330b9af981461037657806333b5b62e1461038957806338af3eed1461039c5780634839ac30146103cb578063497d42f3146103f75780634a4e3bd51461040d57806351858e27146104205780635908984b146104335780635958611e1461045557806359be9cc0146104685780636e66f6e91461047b57806378e7058e1461048e57806379ba5097146104a15780637b3e5e7b146104b45780638da5cb5b146104c75780638f86f5ea146104da57806399b6f5a1146104ed578063a035b1fe14610500578063a19b549314610513578063b5545a3c1461053a578063bae6a6901461054d578063c0ee0b8a1461057b578063c118a9de146105e0578063c19d93fb146105f6578063c306cb901461062d578063cea10af714610640578063d091b55014610653578063dae392ee14610666578063f2fde38b14610679575b600c54600090819060ff161580156101e25750600160025460a060020a900460ff1660048111156101bf57fe5b14806101e25750600360025460a060020a900460ff1660048111156101e057fe5b145b80156101f15750600354600554105b15156101fc57600080fd5b6000341161020957600080fd5b60095434101561021857600080fd5b6005546003543493506102309163ffffffff61069816565b8211156102945760055460035461024c9163ffffffff61069816565b9050600160a060020a0333166108fc61026b848463ffffffff61069816565b9081150290604051600060405180830381858888f19350505050151561029057600080fd5b8091505b61029e33836106aa565b6102a66109e0565b5050005b34156102b557600080fd5b6102bd610b2f565b60405190815260200160405180910390f35b34156102da57600080fd5b6103056004803590602480359160443591606435808201929081013591608435908101910135610b35565b005b341561031257600080fd5b6102bd600160a060020a0360043516610c5b565b341561033157600080fd5b6102bd600435610c6d565b341561034757600080fd5b61030560048035906024803591604435916064359160843580830192908201359160a435918201910135610cb4565b341561038157600080fd5b610305610e2b565b341561039457600080fd5b6102bd610eb3565b34156103a757600080fd5b6103af610eb9565b604051600160a060020a03909116815260200160405180910390f35b34156103d657600080fd5b6103e1600435610ec8565b60405160ff909116815260200160405180910390f35b341561040257600080fd5b6103e1600435610eef565b341561041857600080fd5b610305610efc565b341561042b57600080fd5b610305610f23565b341561043e57600080fd5b610305600160a060020a0360043516602435610f4d565b341561046057600080fd5b6102bd610fe3565b341561047357600080fd5b6103af610fe9565b341561048657600080fd5b6103af610ffe565b341561049957600080fd5b6103af61100d565b34156104ac57600080fd5b61030561101c565b34156104bf57600080fd5b6102bd61109a565b34156104d257600080fd5b6103af6110a0565b34156104e557600080fd5b6103056110af565b34156104f857600080fd5b6103af61116a565b341561050b57600080fd5b6102bd6112a9565b341561051e57600080fd5b6105266112af565b604051901515815260200160405180910390f35b341561054557600080fd5b6103056112e1565b341561055857600080fd5b61056360043561138a565b60405191825260208201526040908101905180910390f35b341561058657600080fd5b61030560048035600160a060020a03169060248035919060649060443590810190830135806020601f820181900481020160405190810160405281815292919060208401838380828437509496506113b695505050505050565b34156105eb57600080fd5b6102bd6004356113f0565b341561060157600080fd5b61060961146c565b6040518082600481111561061957fe5b60ff16815260200191505060405180910390f35b341561063857600080fd5b6103af61147c565b341561064b57600080fd5b6102bd6115cf565b341561065e57600080fd5b6103af6115d5565b341561067157600080fd5b6102bd6115e4565b341561068457600080fd5b610305600160a060020a03600435166115ea565b6000828211156106a457fe5b50900390565b60008060008060008060006106cc60055460035461069890919063ffffffff16565b8811156106d857600080fd5b6106f26006546106e661167d565b9063ffffffff61069816565b96506000955062093a808710610718576107158762093a8063ffffffff61168116565b95505b7f8a36f5a234186d446e36a7df36ace663a05a580d9bea2dd899c6dd76a075d5fa8660405190815260200160405180910390a1600360025460a060020a900460ff16600481111561076557fe5b14156107ed57610793600354610787600460055461169890919063ffffffff16565b9063ffffffff61168116565b9350858411156107a1578395505b600486106107ae57600395505b6107e66064610787601089600481106107c357fe5b6020808204909201546008549260ff92066101000a90041663ffffffff61169816565b9450610812565b600286106107fa57600195505b61080f6064610787600f89600281106107c357fe5b94505b7f8a36f5a234186d446e36a7df36ace663a05a580d9bea2dd899c6dd76a075d5fa8560405190815260200160405180910390a1610855888663ffffffff61168116565b9250610860886113f0565b91506108776064610787848663ffffffff61169816565b9050610889838263ffffffff6116c316565b925061089483610c6d565b600a54909350600160a060020a031663a9059cbb8a8560006040516020015260405160e060020a63ffffffff8516028152600160a060020a0390921660048301526024820152604401602060405180830381600087803b15156108f657600080fd5b6102c65a03f1151561090757600080fd5b50505060405180519050151561091c57600080fd5b600160a060020a0389166000908152600b6020526040902054610945908963ffffffff6116c316565b600160a060020a038a166000908152600b6020526040902055600554610971908963ffffffff6116c316565b6005557f2b0c4dfbf2e34a2292e9110d6ea90d7c78f54b3aebe3974d2db7197308f21ff8898985846040518085600160a060020a0316600160a060020a0316815260200184815260200183815260200182815260200194505050505060405180910390a1505050505050505050565b600160025460a060020a900460ff1660048111156109fa57fe5b1415610a625760035460055410610a5d577ff90a42045b12aef1cf33ae920628357639512bb8d1a943f2a8dda7d0b8088c2060055460405190815260200160405180910390a160028054819060a060020a60ff02191660a060020a825b02179055505b610b2d565b600c54610100900460ff16158015610a7e575060045460055410155b15610ac957600c805461ff0019166101001790556005547f50c73740b6808484aba715b361644d9e478fabf4cbddf8e122992ca9b71444119060405190815260200160405180910390a15b60035460055410610b2d57426007556005547fa1f724757cf717a688dc12d91540a30b9e166a778344d628ffe6b30f8e88bde29060405190815260200160405180910390a1600280546004919060a060020a60ff02191660a060020a835b02179055505b565b60065481565b60005433600160a060020a03908116911614610b5057600080fd5b600087118015610b605750600085115b8015610b835750600060025460a060020a900460ff166004811115610b8157fe5b145b8015610b8e57508281145b1515610b9957600080fd5b610bb187670de0b6b3a764000063ffffffff61169816565b600355610bcb8666038d7ea4c6800063ffffffff61169816565b6009556008859055610c388484806020808202016040519081016040528093929190818152602001838360200280828437820191505050505050838380806020026020016040519081016040528093929190818152602001838360200280828437506116d2945050505050565b50506002805460a060020a60ff02191660a060020a179055505042600655505050565b600b6020526000908152604090205481565b6000620f42408206818111610c825782610cab565b610ca5620f4240610c99858263ffffffff61168116565b9063ffffffff61169816565b620f4240015b91505b50919050565b60005433600160a060020a03908116911614610ccf57600080fd5b600088118015610cdf5750600087115b8015610cea57508787115b8015610cf65750600085115b8015610d195750600360025460a060020a900460ff166004811115610d1757fe5b105b8015610d2457508281145b1515610d2f57600080fd5b610d4788670de0b6b3a764000063ffffffff61169816565b600455610d6287670de0b6b3a764000063ffffffff61169816565b600355610d7c8666038d7ea4c6800063ffffffff61169816565b6009556008859055610d90600e6000611775565b610df6848480806020026020016040519081016040528093929190818152602001838360200280828437820191505050505050838380806020026020016040519081016040528093929190818152602001838360200280828437506116d2945050505050565b50506002805460a060020a60ff0219167403000000000000000000000000000000000000000017905550504260065550505050565b60005433600160a060020a03908116911614610e4657600080fd5b600160025460a060020a900460ff166004811115610e6057fe5b1480610e6f5750610e6f6112af565b1515610e7a57600080fd5b600254600160a060020a039081169030163180156108fc0290604051600060405180830381858888f193505050501515610b2d57600080fd5b60095481565b600254600160a060020a031681565b600f8160028110610ed557fe5b60209182820401919006915054906101000a900460ff1681565b60108160048110610ed557fe5b60005433600160a060020a03908116911614610f1757600080fd5b600c805460ff19169055565b60005433600160a060020a03908116911614610f3e57600080fd5b600c805460ff19166001179055565b60005433600160a060020a03908116911614610f6857600080fd5b600c5460ff16158015610fb35750600160025460a060020a900460ff166004811115610f9057fe5b1480610fb35750600360025460a060020a900460ff166004811115610fb157fe5b145b8015610fc25750600354600554105b1515610fcd57600080fd5b610fd782826106aa565b610fdf6109e0565b5050565b60075481565b600c54620100009004600160a060020a031681565b600a54600160a060020a031681565b600d54600160a060020a031681565b60015433600160a060020a0390811691161415610b2d576001805460008054600160a060020a0380841673ffffffffffffffffffffffffffffffffffffffff19928316178084559190931690935591167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a3565b60055481565b600054600160a060020a031681565b60005433600160a060020a039081169116146110ca57600080fd5b600160025460a060020a900460ff1660048111156110e457fe5b14806111075750600360025460a060020a900460ff16600481111561110557fe5b145b151561111257600080fd5b600160025460a060020a900460ff16600481111561112c57fe5b141561114d5760028054819060a060020a60ff02191660a060020a82610a57565b600280546004919060a060020a60ff02191660a060020a83610b27565b6000805433600160a060020a0390811691161461118657600080fd5b61118e6112af565b151561119957600080fd5b600a546000543091600160a060020a0390811691166111b6611796565b600160a060020a039384168152918316602083015290911660408083019190915260609091019051809103906000f08015156111f157600080fd5b600d805473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a039283161790819055600a5482169163a9059cbb9116650b5e620f480060006040516020015260405160e060020a63ffffffff8516028152600160a060020a0390921660048301526024820152604401602060405180830381600087803b151561127c57600080fd5b6102c65a03f1151561128d57600080fd5b50505060405180515050600d54600160a060020a031690505b90565b60085481565b6000600460025460a060020a900460ff1660048111156112cb57fe5b1480156112dc575060045460055410155b905090565b6000600460025460a060020a900460ff1660048111156112fd57fe5b14801561130d5750600454600554105b151561131857600080fd5b50600160a060020a0333166000908152600b602052604081208054908290559081111561138757600160a060020a03331681156108fc0282604051600060405180830381858888f19350505050151561138757600160a060020a0333166000908152600b602052604090208190555b50565b600e80548290811061139857fe5b60009182526020909120600290910201805460019091015490915082565b600054600160a060020a038481169116146113d057600080fd5b60008211806113e0575060008151115b15156113eb57600080fd5b505050565b6000806000600e805490501115611463575060005b600e5481101561146357600e80548290811061141d57fe5b6000918252602090912060029091020154831061145b57600e80548290811061144257fe5b9060005260206000209060020201600101549150610cae565b600101611405565b50600092915050565b60025460a060020a900460ff1681565b6000805433600160a060020a0390811691161461149857600080fd5b6114a06112af565b15156114ab57600080fd5b600a546000543091600160a060020a0390811691166114c86117a6565b600160a060020a039384168152918316602083015290911660408083019190915260609091019051809103906000f080151561150357600080fd5b600c805475ffffffffffffffffffffffffffffffffffffffff0000191662010000600160a060020a0393841681029190911791829055600a5483169263a9059cbb929190910416650b5e620f480060006040516020015260405160e060020a63ffffffff8516028152600160a060020a0390921660048301526024820152604401602060405180830381600087803b151561159d57600080fd5b6102c65a03f115156115ae57600080fd5b50505060405180515050600c54620100009004600160a060020a0316919050565b60035481565b600154600160a060020a031681565b60045481565b60005433600160a060020a0390811691161461160557600080fd5b600160a060020a038116151561161a57600080fd5b6001805473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a0383811691909117918290559081169033167f13a4b3bc0d5234dd3d87c9f1557d8faefa37986da62c36ba49309e2fb2c9aec460405160405180910390a350565b4290565b600080828481151561168f57fe5b04949350505050565b60008282028315806116b457508284828115156116b157fe5b04145b15156116bc57fe5b9392505050565b6000828201838110156116bc57fe5b60005b82518110156113eb57600e8054600181016116f083826117b6565b916000526020600020906002020160006040805190810160405280611739670de0b6b3a764000089888151811061172357fe5b906020019060200201519063ffffffff61169816565b815260200186868151811061174a57fe5b9060200190602002015190529190508151815560208201516001918201559290920191506116d59050565b508054600082556002029060005260206000209081019061138791906117de565b6040516107d08061180383390190565b6040516108c380611fd383390190565b8154818355818115116113eb576002028160020283600052602060002091820191016113eb91905b6112a691905b808211156117fe57600080825560018201556002016117e4565b509056006060604052341561000f57600080fd5b6040516060806107d08339810160405280805191906020018051919060200180516000805460028054600160a060020a0319908116600160a060020a03998a16179091556003805482169789169790971790965585163387161790941694169390931782555061074a9150819061008690396000f3006060604052600436106100695763ffffffff60e060020a60003504166379ba5097811461006e5780638433acd1146100835780638da5cb5b14610096578063c0ee0b8a146100c5578063d091b5501461012a578063df8de3e71461013d578063f2fde38b1461015c575b600080fd5b341561007957600080fd5b61008161017b565b005b341561008e57600080fd5b6100816101fa565b34156100a157600080fd5b6100a9610413565b604051600160a060020a03909116815260200160405180910390f35b34156100d057600080fd5b61008160048035600160a060020a03169060248035919060649060443590810190830135806020601f8201819004810201604051908101604052818152929190602084018383808284375094965061042295505050505050565b341561013557600080fd5b6100a9610476565b341561014857600080fd5b610081600160a060020a0360043516610485565b341561016757600080fd5b610081600160a060020a0360043516610671565b60015433600160a060020a03908116911614156101f8576001805460008054600160a060020a0380841673ffffffffffffffffffffffffffffffffffffffff19928316178084559190931690935591167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35b565b60008054819033600160a060020a0390811691161461021857600080fd5b600354600160a060020a03166370a082313060006040516020015260405160e060020a63ffffffff8416028152600160a060020a039091166004820152602401602060405180830381600087803b151561027157600080fd5b6102c65a03f1151561028257600080fd5b50505060405180519250506000821161029a57600080fd5b600254600160a060020a0316635958611e6000604051602001526040518163ffffffff1660e060020a028152600401602060405180830381600087803b15156102e257600080fd5b6102c65a03f115156102f357600080fd5b5050506040518051915050600081118015610326575061031c816212750063ffffffff61070416565b61032461071a565b115b151561033157600080fd5b60035460008054600160a060020a039283169263a9059cbb9291169085906040516020015260405160e060020a63ffffffff8516028152600160a060020a0390921660048301526024820152604401602060405180830381600087803b151561039957600080fd5b6102c65a03f115156103aa57600080fd5b5050506040518051905015156103bf57600080fd5b6000547f6352c5382c4a4578e712449ca65e83cdb392d045dfcf1cad9615189db2da244b90600160a060020a031683604051600160a060020a03909216825260208201526040908101905180910390a15050565b600054600160a060020a031681565b600054600160a060020a038481169116148061044b5750600254600160a060020a038481169116145b151561045657600080fd5b6000821180610466575060008151115b151561047157600080fd5b505050565b600154600160a060020a031681565b6000805433600160a060020a039081169116146104a157600080fd5b600354600160a060020a03838116911614156104bc57600080fd5b600160a060020a038216151561050a57600054600160a060020a039081169030163180156108fc0290604051600060405180830381858888f19350505050151561050557600080fd5b61066d565b6003805473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a038481169190911791829055166370a082313060006040516020015260405160e060020a63ffffffff8416028152600160a060020a039091166004820152602401602060405180830381600087803b151561058657600080fd5b6102c65a03f1151561059757600080fd5b505050604051805160035460008054929450600160a060020a03918216935063a9059cbb929091169084906040516020015260405160e060020a63ffffffff8516028152600160a060020a0390921660048301526024820152604401602060405180830381600087803b151561060c57600080fd5b6102c65a03f1151561061d57600080fd5b50505060405180519050507fe9aa550fd75d0d28e07fa9dd67d3ae705678776f6c4a75abd09534f93e7d79078282604051600160a060020a03909216825260208201526040908101905180910390a15b5050565b60005433600160a060020a0390811691161461068c57600080fd5b600160a060020a03811615156106a157600080fd5b6001805473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a0383811691909117918290559081169033167f13a4b3bc0d5234dd3d87c9f1557d8faefa37986da62c36ba49309e2fb2c9aec460405160405180910390a350565b60008282018381101561071357fe5b9392505050565b42905600a165627a7a723058202eddf85802f8e6b9b462965facd98422aa29e435715fb614f3084de33a7c512300296060604052341561000f57600080fd5b6040516060806108c38339810160405280805191906020018051919060200180516000805460038054600160a060020a0319908116600160a060020a03998a16179091556004805482169789169790971790965585163387161790941694169390931782555061083d9150819061008690396000f3006060604052600436106100695763ffffffff60e060020a60003504166379ba5097811461006e5780638433acd1146100835780638da5cb5b14610096578063c0ee0b8a146100c5578063d091b5501461012a578063df8de3e71461013d578063f2fde38b1461015c575b600080fd5b341561007957600080fd5b61008161017b565b005b341561008e57600080fd5b6100816101fa565b34156100a157600080fd5b6100a961049e565b604051600160a060020a03909116815260200160405180910390f35b34156100d057600080fd5b61008160048035600160a060020a03169060248035919060649060443590810190830135806020601f820181900481020160405190810160405281815292919060208401838380828437509496506104ad95505050505050565b341561013557600080fd5b6100a9610501565b341561014857600080fd5b610081600160a060020a0360043516610510565b341561016757600080fd5b610081600160a060020a03600435166106fc565b60015433600160a060020a03908116911614156101f8576001805460008054600160a060020a0380841673ffffffffffffffffffffffffffffffffffffffff19928316178084559190931690935591167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35b565b6000805481908190819033600160a060020a0390811691161461021c57600080fd5b600454600160a060020a03166370a082313060006040516020015260405160e060020a63ffffffff8416028152600160a060020a039091166004820152602401602060405180830381600087803b151561027557600080fd5b6102c65a03f1151561028657600080fd5b50505060405180516002549095506102a591508563ffffffff61078f16565b600354909350600160a060020a0316635958611e6000604051602001526040518163ffffffff1660e060020a028152600401602060405180830381600087803b15156102f057600080fd5b6102c65a03f1151561030157600080fd5b5050506040518051925050600082118015610334575061032a826212750063ffffffff61078f16565b6103326107a5565b115b151561033f57600080fd5b61038061034c600c6107a9565b6103746103678561035b6107a5565b9063ffffffff6107c416565b869063ffffffff6107d616565b9063ffffffff6107fa16565b9050610397600254826107c490919063ffffffff16565b9050838111156103a45750825b6002546103b7908263ffffffff61078f16565b60025560045460008054600160a060020a039283169263a9059cbb9291169084906040516020015260405160e060020a63ffffffff8516028152600160a060020a0390921660048301526024820152604401602060405180830381600087803b151561042257600080fd5b6102c65a03f1151561043357600080fd5b50505060405180519050151561044857600080fd5b6000547f6352c5382c4a4578e712449ca65e83cdb392d045dfcf1cad9615189db2da244b90600160a060020a031682604051600160a060020a03909216825260208201526040908101905180910390a150505050565b600054600160a060020a031681565b600054600160a060020a03848116911614806104d65750600354600160a060020a038481169116145b15156104e157600080fd5b60008211806104f1575060008151115b15156104fc57600080fd5b505050565b600154600160a060020a031681565b6000805433600160a060020a0390811691161461052c57600080fd5b600454600160a060020a038381169116141561054757600080fd5b600160a060020a038216151561059557600054600160a060020a039081169030163180156108fc0290604051600060405180830381858888f19350505050151561059057600080fd5b6106f8565b6004805473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a038481169190911791829055166370a082313060006040516020015260405160e060020a63ffffffff8416028152600160a060020a039091166004820152602401602060405180830381600087803b151561061157600080fd5b6102c65a03f1151561062257600080fd5b505050604051805160045460008054929450600160a060020a03918216935063a9059cbb929091169084906040516020015260405160e060020a63ffffffff8516028152600160a060020a0390921660048301526024820152604401602060405180830381600087803b151561069757600080fd5b6102c65a03f115156106a857600080fd5b50505060405180519050507fe9aa550fd75d0d28e07fa9dd67d3ae705678776f6c4a75abd09534f93e7d79078282604051600160a060020a03909216825260208201526040908101905180910390a15b5050565b60005433600160a060020a0390811691161461071757600080fd5b600160a060020a038116151561072c57600080fd5b6001805473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a0383811691909117918290559081169033167f13a4b3bc0d5234dd3d87c9f1557d8faefa37986da62c36ba49309e2fb2c9aec460405160405180910390a350565b60008282018381101561079e57fe5b9392505050565b4290565b60006107be8262278d0063ffffffff6107d616565b92915050565b6000828211156107d057fe5b50900390565b60008282028315806107f257508284828115156107ef57fe5b04145b151561079e57fe5b600080828481151561080857fe5b049493505050505600a165627a7a72305820cfbfbcb071eb8a5ab42661258cda33235ad5b855ae0669786bd8e97fe62049f40029a165627a7a72305820e3c85b6dfa4c20ae31317cbe8254281d393ba5c1d99f409078fb9254c6551ebf0029
Swarm Source
bzzr://e3c85b6dfa4c20ae31317cbe8254281d393ba5c1d99f409078fb9254c6551ebf
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 ]
[ 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.