Source Code
Overview
ETH Balance
0 ETH
Eth Value
$0.00Latest 7 from a total of 7 transactions
| Transaction Hash |
Method
|
Block
|
From
|
|
To
|
||||
|---|---|---|---|---|---|---|---|---|---|
| Transfer | 4589254 | 3025 days ago | IN | 0.3 ETH | 0.00042884 | ||||
| Transfer | 4589098 | 3025 days ago | IN | 0.08 ETH | 0.00020316 | ||||
| Transfer | 4589089 | 3025 days ago | IN | 0.08 ETH | 0.00008576 | ||||
| Transfer | 4589080 | 3025 days ago | IN | 0.085 ETH | 0.00021442 | ||||
| Transfer | 4589057 | 3025 days ago | IN | 0.09 ETH | 0.00042884 | ||||
| Transfer | 4589040 | 3025 days ago | IN | 0.09 ETH | 0.00042884 | ||||
| Set Owner | 4570632 | 3028 days ago | IN | 0 ETH | 0.0014297 |
Latest 1 internal transaction
Advanced mode:
| Parent Transaction Hash | Method | Block |
From
|
|
To
|
||
|---|---|---|---|---|---|---|---|
| Transfer | 4565930 | 3029 days ago | Contract Creation | 0 ETH |
Loading...
Loading
Loading...
Loading
Cross-Chain Transactions
Loading...
Loading
Contract Name:
Minter
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 2017-11-17
*/
/* Token - simple token for PreICO and ICO
Copyright (C) 2017 Sergey Sherkunov <leinlawun@leinlawun.org>
This file is part of Token.
Token is free software: you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
the Free Software Foundation, either version 3 of the License, or
(at your option) any later version.
This program is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
GNU General Public License for more details.
You should have received a copy of the GNU General Public License
along with this program. If not, see <https://www.gnu.org/licenses/>. */
pragma solidity ^0.4.18;
library SafeMath {
function add(uint256 a, uint256 b) internal pure returns (uint256 c) {
c = a + b;
assert (c >= a);
}
function sub(uint256 a, uint256 b) internal pure returns (uint256 c) {
assert(b <= a);
c = a - b;
}
function mul(uint256 a, uint256 b) internal pure returns (uint256 c) {
c = a * b;
assert (c / a == b);
}
function div(uint256 a, uint256 b) internal pure returns (uint256 c) {
c = a / b;
}
}
contract ERC20MintableToken {
using SafeMath for uint256;
address public owner;
Minter public minter;
string constant public name = "PayAll";
string constant public symbol = "PLL";
uint8 constant public decimals = 0;
uint256 public totalSupply;
mapping (address => uint256) public balanceOf;
mapping (address => mapping (address => uint256)) public allowance;
event Transfer(address indexed _oldTokensHolder,
address indexed _newTokensHolder, uint256 _tokensNumber);
//https://github.com/ethereum/EIPs/issues/20#issuecomment-263524729
event Transfer(address indexed _tokensSpender,
address indexed _oldTokensHolder,
address indexed _newTokensHolder, uint256 _tokensNumber);
event Approval(address indexed _tokensHolder, address indexed _tokensSpender,
uint256 _newTokensNumber);
//https://github.com/ethereum/EIPs/issues/20#issuecomment-263524729
event Approval(address indexed _tokensHolder, address indexed _tokensSpender,
uint256 _oldTokensNumber, uint256 _newTokensNumber);
modifier onlyOwner {
require (owner == msg.sender);
_;
}
modifier onlyMinter {
require (minter == msg.sender);
_;
}
//https://vessenes.com/the-erc20-short-address-attack-explained
//https://blog.golemproject.net/how-to-find-10m-by-just-reading-blockchain-6ae9d39fcd95
//https://ericrafaloff.com/analyzing-the-erc20-short-address-attack
modifier checkPayloadSize(uint256 size) {
require (msg.data.length == size + 4);
_;
}
function setOwner(address _owner) public onlyOwner {
uint256 _allowance = allowance[this][owner];
_approve(this, owner, 0);
owner = _owner;
_approve(this, owner, _allowance);
}
function setMinter(Minter _minter) public onlyOwner {
uint256 _allowance = allowance[this][minter];
_approve(this, minter, 0);
minter = _minter;
_approve(this, minter, _allowance);
}
function ERC20MintableToken(Minter _minter) public {
owner = tx.origin;
minter = _minter;
}
function _transfer(address _oldTokensHolder, address _newTokensHolder,
uint256 _tokensNumber) private {
balanceOf[_oldTokensHolder] =
balanceOf[_oldTokensHolder].sub(_tokensNumber);
balanceOf[_newTokensHolder] =
balanceOf[_newTokensHolder].add(_tokensNumber);
Transfer(_oldTokensHolder, _newTokensHolder, _tokensNumber);
}
//https://vessenes.com/the-erc20-short-address-attack-explained
//https://blog.golemproject.net/how-to-find-10m-by-just-reading-blockchain-6ae9d39fcd95
//https://ericrafaloff.com/analyzing-the-erc20-short-address-attack
function transfer(address _newTokensHolder, uint256 _tokensNumber) public
checkPayloadSize(2 * 32) returns (bool) {
_transfer(msg.sender, _newTokensHolder, _tokensNumber);
return true;
}
//https://vessenes.com/the-erc20-short-address-attack-explained
//https://blog.golemproject.net/how-to-find-10m-by-just-reading-blockchain-6ae9d39fcd95
//https://ericrafaloff.com/analyzing-the-erc20-short-address-attack
//https://github.com/ethereum/EIPs/issues/20#issuecomment-263524729
function transferFrom(address _oldTokensHolder, address _newTokensHolder,
uint256 _tokensNumber) public checkPayloadSize(3 * 32)
returns (bool) {
allowance[_oldTokensHolder][msg.sender] =
allowance[_oldTokensHolder][msg.sender].sub(_tokensNumber);
_transfer(_oldTokensHolder, _newTokensHolder, _tokensNumber);
Transfer(msg.sender, _oldTokensHolder, _newTokensHolder, _tokensNumber);
return true;
}
function _approve(address _tokensHolder, address _tokensSpender,
uint256 _newTokensNumber) private {
allowance[_tokensHolder][_tokensSpender] = _newTokensNumber;
Approval(msg.sender, _tokensSpender, _newTokensNumber);
}
//https://vessenes.com/the-erc20-short-address-attack-explained
//https://blog.golemproject.net/how-to-find-10m-by-just-reading-blockchain-6ae9d39fcd95
//https://ericrafaloff.com/analyzing-the-erc20-short-address-attack
//https://github.com/ethereum/EIPs/issues/20#issuecomment-263524729
function approve(address _tokensSpender, uint256 _newTokensNumber) public
checkPayloadSize(2 * 32) returns (bool) {
require (allowance[msg.sender][_tokensSpender] == 0 ||
_newTokensNumber == 0);
_approve(msg.sender, _tokensSpender, _newTokensNumber);
return true;
}
//https://vessenes.com/the-erc20-short-address-attack-explained
//https://blog.golemproject.net/how-to-find-10m-by-just-reading-blockchain-6ae9d39fcd95
//https://ericrafaloff.com/analyzing-the-erc20-short-address-attack
//https://github.com/ethereum/EIPs/issues/20#issuecomment-263524729
function approve(address _tokensSpender, uint256 _oldTokensNumber,
uint256 _newTokensNumber) public checkPayloadSize(3 * 32)
returns (bool) {
require (allowance[msg.sender][_tokensSpender] == _oldTokensNumber);
_approve(msg.sender, _tokensSpender, _newTokensNumber);
Approval(msg.sender, _tokensSpender, _oldTokensNumber, _newTokensNumber);
return true;
}
function () public {
revert();
}
function mint(uint256 _tokensNumber) public onlyMinter {
totalSupply = totalSupply.add(_tokensNumber);
balanceOf[this] = balanceOf[this].add(_tokensNumber);
uint256 _allowance = allowance[this][msg.sender].add(_tokensNumber);
_approve(this, minter, _allowance);
_approve(this, owner, _allowance);
}
function burnUndistributed() public onlyMinter {
_approve(this, minter, 0);
_approve(this, owner, 0);
totalSupply = totalSupply.sub(balanceOf[this]);
balanceOf[this] = 0;
}
}
contract Minter {
using SafeMath for uint256;
enum MinterState {
PreICOWait,
PreICOStarted,
ICOWait,
ICOStarted,
Over
}
struct Tokensale {
uint256 startTime;
uint256 endTime;
uint256 tokensMinimumNumberForBuy;
uint256 tokensCost;
uint256 tokensNumberForMint;
bool tokensMinted;
uint256 tokensStepOneBountyTime;
uint256 tokensStepTwoBountyTime;
uint256 tokensStepThreeBountyTime;
uint256 tokensStepFourBountyTime;
uint8 tokensStepOneBounty;
uint8 tokensStepTwoBounty;
uint8 tokensStepThreeBounty;
uint8 tokensStepFourBounty;
}
address public owner;
ERC20MintableToken public token;
Tokensale public PreICO =
Tokensale(1511211600, 1513803600, 150, 340000000000000 wei, 10000000, false,
1 weeks, 2 weeks, 3 weeks, 4 weeks + 2 days, 25, 15, 10, 5);
Tokensale public ICO =
Tokensale(1526850000, 1529528400, 150, 340000000000000 wei, 290000000,
false, 1 weeks, 2 weeks, 3 weeks, 4 weeks + 3 days, 20, 10, 5, 0);
bool public paused = false;
modifier onlyOwner {
require (owner == msg.sender);
_;
}
modifier onlyDuringTokensale {
MinterState _minterState_ = _minterState();
require (_minterState_ == MinterState.PreICOStarted ||
_minterState_ == MinterState.ICOStarted);
_;
}
modifier onlyAfterTokensaleOver {
MinterState _minterState_ = _minterState();
require (_minterState_ == MinterState.Over);
_;
}
modifier onlyNotPaused {
require (!paused);
_;
}
modifier checkLimitsToBuyTokens {
MinterState _minterState_ = _minterState();
require (_minterState_ == MinterState.PreICOStarted &&
PreICO.tokensMinimumNumberForBuy <= msg.value / PreICO.tokensCost ||
_minterState_ == MinterState.ICOStarted &&
ICO.tokensMinimumNumberForBuy <= msg.value / ICO.tokensCost);
_;
}
function setOwner(address _owner) public onlyOwner {
owner = _owner;
}
function setPaused(bool _paused) public onlyOwner {
paused = _paused;
}
function Minter() public {
owner = msg.sender;
token = new ERC20MintableToken(this);
}
function _minterState() private constant returns (MinterState) {
if (PreICO.startTime > now) {
return MinterState.PreICOWait;
} else if (PreICO.endTime > now) {
return MinterState.PreICOStarted;
} else if (ICO.startTime > now) {
return MinterState.ICOWait;
} else if (ICO.endTime > now) {
return MinterState.ICOStarted;
} else {
return MinterState.Over;
}
}
function _tokensaleCountTokensNumber(Tokensale _tokensale, uint256 _timestamp,
uint256 _wei, uint256 _totalTokensNumber,
uint256 _totalTokensNumberAllowance)
private pure
returns (uint256, uint256) {
uint256 _tokensNumber = _wei.div(_tokensale.tokensCost);
require (_tokensNumber >= _tokensale.tokensMinimumNumberForBuy);
uint256 _aviableTokensNumber =
_totalTokensNumber <= _totalTokensNumberAllowance ?
_totalTokensNumber : _totalTokensNumberAllowance;
uint256 _restWei = 0;
if (_tokensNumber >= _aviableTokensNumber) {
uint256 _restTokensNumber = _tokensNumber.sub(_aviableTokensNumber);
_restWei = _restTokensNumber.mul(_tokensale.tokensCost);
_tokensNumber = _aviableTokensNumber;
} else {
uint256 _timePassed = _timestamp.sub(_tokensale.startTime);
uint256 _tokensNumberBounty = 0;
if (_timePassed < _tokensale.tokensStepOneBountyTime) {
_tokensNumberBounty = _tokensNumber.mul(_tokensale.tokensStepOneBounty)
.div(100);
} else if (_timePassed < _tokensale.tokensStepTwoBountyTime) {
_tokensNumberBounty = _tokensNumber.mul(_tokensale.tokensStepTwoBounty)
.div(100);
} else if (_timePassed < _tokensale.tokensStepThreeBountyTime) {
_tokensNumberBounty =
_tokensNumber.mul(_tokensale.tokensStepThreeBounty).div(100);
} else if (_timePassed < _tokensale.tokensStepFourBountyTime) {
_tokensNumberBounty = _tokensNumber.mul(_tokensale.tokensStepFourBounty)
.div(100);
}
_tokensNumber = _tokensNumber.add(_tokensNumberBounty);
if (_tokensNumber > _aviableTokensNumber) {
_tokensNumber = _aviableTokensNumber;
}
}
return (_tokensNumber, _restWei);
}
function _tokensaleStart(Tokensale storage _tokensale) private {
if (!_tokensale.tokensMinted) {
token.mint(_tokensale.tokensNumberForMint);
_tokensale.tokensMinted = true;
}
uint256 _totalTokensNumber = token.balanceOf(token);
uint256 _totalTokensNumberAllowance = token.allowance(token, this);
var (_tokensNumber, _restWei) =
_tokensaleCountTokensNumber(_tokensale, now, msg.value,
_totalTokensNumber,
_totalTokensNumberAllowance);
token.transferFrom(token, msg.sender, _tokensNumber);
if (_restWei > 0) {
msg.sender.transfer(_restWei);
}
}
function _tokensaleSelect() private constant returns (Tokensale storage) {
MinterState _minterState_ = _minterState();
if (_minterState_ == MinterState.PreICOStarted) {
return PreICO;
} else if (_minterState_ == MinterState.ICOStarted) {
return ICO;
} else {
revert();
}
}
function () public payable onlyDuringTokensale onlyNotPaused
checkLimitsToBuyTokens {
Tokensale storage _tokensale = _tokensaleSelect();
_tokensaleStart(_tokensale);
}
function mint(uint256 _tokensNumber) public onlyOwner onlyDuringTokensale {
token.mint(_tokensNumber);
}
function burnUndistributed() public onlyAfterTokensaleOver {
token.burnUndistributed();
}
function withdraw() public onlyOwner {
msg.sender.transfer(this.balance);
}
}Contract Security Audit
- No Contract Security Audit Submitted- Submit Audit Here
Contract ABI
API[{"constant":true,"inputs":[],"name":"PreICO","outputs":[{"name":"startTime","type":"uint256"},{"name":"endTime","type":"uint256"},{"name":"tokensMinimumNumberForBuy","type":"uint256"},{"name":"tokensCost","type":"uint256"},{"name":"tokensNumberForMint","type":"uint256"},{"name":"tokensMinted","type":"bool"},{"name":"tokensStepOneBountyTime","type":"uint256"},{"name":"tokensStepTwoBountyTime","type":"uint256"},{"name":"tokensStepThreeBountyTime","type":"uint256"},{"name":"tokensStepFourBountyTime","type":"uint256"},{"name":"tokensStepOneBounty","type":"uint8"},{"name":"tokensStepTwoBounty","type":"uint8"},{"name":"tokensStepThreeBounty","type":"uint8"},{"name":"tokensStepFourBounty","type":"uint8"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"_owner","type":"address"}],"name":"setOwner","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"_paused","type":"bool"}],"name":"setPaused","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[],"name":"burnUndistributed","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"ICO","outputs":[{"name":"startTime","type":"uint256"},{"name":"endTime","type":"uint256"},{"name":"tokensMinimumNumberForBuy","type":"uint256"},{"name":"tokensCost","type":"uint256"},{"name":"tokensNumberForMint","type":"uint256"},{"name":"tokensMinted","type":"bool"},{"name":"tokensStepOneBountyTime","type":"uint256"},{"name":"tokensStepTwoBountyTime","type":"uint256"},{"name":"tokensStepThreeBountyTime","type":"uint256"},{"name":"tokensStepFourBountyTime","type":"uint256"},{"name":"tokensStepOneBounty","type":"uint8"},{"name":"tokensStepTwoBounty","type":"uint8"},{"name":"tokensStepThreeBounty","type":"uint8"},{"name":"tokensStepFourBounty","type":"uint8"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[],"name":"withdraw","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"paused","outputs":[{"name":"","type":"bool"}],"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":"_tokensNumber","type":"uint256"}],"name":"mint","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"token","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"inputs":[],"payable":false,"stateMutability":"nonpayable","type":"constructor"},{"payable":true,"stateMutability":"payable","type":"fallback"}]Contract Creation Code
60606040526101c06040519081016040908152635a1342508252635a3acf5060208301526096908201526601353a6b3940006060820152629896806080820152600060a082015262093a8060c08201526212750060e0820152621baf8061010082015262278d006101208201526019610140820152600f610160820152600a61018082015260056101a08201526002815181556020820151816001015560408201518160020155606082015181600301556080820151816004015560a082015160058201805460ff191691151591909117905560c0820151816006015560e0820151816007015561010082015181600801556101208201518160090155610140820151600a8201805460ff191660ff9290921691909117905561016082015181600a0160016101000a81548160ff021916908360ff16021790555061018082015181600a0160026101000a81548160ff021916908360ff1602179055506101a082015181600a0160036101000a81548160ff021916908360ff16021790555050506101c06040519081016040908152635b01e1d08252635b2ac05060208301526096908201526601353a6b39400060608201526311490c806080820152600060a0820181905262093a8060c08301526212750060e0830152621baf806101008301526228de806101208301526014610140830152600a61016083015260056101808301526101a0820152600d815181556020820151816001015560408201518160020155606082015181600301556080820151816004015560a082015160058201805460ff191691151591909117905560c0820151816006015560e0820151816007015561010082015181600801556101208201518160090155610140820151600a8201805460ff191660ff9290921691909117905561016082015181600a0160016101000a81548160ff021916908360ff16021790555061018082015181600a0160026101000a81548160ff021916908360ff1602179055506101a0820151600a909101805460ff9290921663010000000263ff00000019909216919091179055506018805460ff19169055341561031757600080fd5b60008054600160a060020a03191633600160a060020a03161790553061033b610386565b600160a060020a039091168152602001604051809103906000f080151561036157600080fd5b60018054600160a060020a031916600160a060020a0392909216919091179055610396565b604051610a8c80610ef883390190565b610b53806103a56000396000f30060606040526004361061008a5763ffffffff60e060020a60003504166310c2a365811461016557806313af4035146101f757806316c38b3c1461021857806326abfe0914610230578063273ba6bb146102435780633ccfd60b146102565780635c975abb146102695780638da5cb5b14610290578063a0712d68146102bf578063fc0c546a146102d5575b6000806100956102e8565b905060018160048111156100a557fe5b14806100bc575060038160048111156100ba57fe5b145b15156100c757600080fd5b60185460ff16156100d757600080fd5b60006100e16102e8565b905060018160048111156100f157fe5b14801561010f57506005543481151561010657fe5b04600280015411155b806101425750600381600481111561012357fe5b14801561014257506010543481151561013857fe5b04600d6002015411155b151561014d57600080fd5b61015561033f565b92506101608361038f565b505050005b341561017057600080fd5b61017861069a565b6040519d8e5260208e019c909c526040808e019b909b5260608d019990995260808c019790975294151560a08b015260c08a019390935260e089019190915261010088015261012087015260ff9081166101408701529081166101608601529081166101808501529091166101a08301526101c0909101905180910390f35b341561020257600080fd5b610216600160a060020a03600435166106e1565b005b341561022357600080fd5b610216600435151561072b565b341561023b57600080fd5b610216610759565b341561024e57600080fd5b6101786107d3565b341561026157600080fd5b61021661081a565b341561027457600080fd5b61027c610874565b604051901515815260200160405180910390f35b341561029b57600080fd5b6102a361087d565b604051600160a060020a03909116815260200160405180910390f35b34156102ca57600080fd5b61021660043561088c565b34156102e057600080fd5b6102a361093c565b60004260026000015411156102ff5750600061033c565b600354429011156103125750600161033c565b600d54429011156103255750600261033c565b600e54429011156103385750600361033c565b5060045b90565b60008061034a6102e8565b9050600181600481111561035a57fe5b1415610369576002915061038b565b600381600481111561037757fe5b141561038657600d915061038b565b600080fd5b5090565b600581015460009081908190819060ff16151561041a576001546004860154600160a060020a039091169063a0712d689060405160e060020a63ffffffff84160281526004810191909152602401600060405180830381600087803b15156103f657600080fd5b6102c65a03f1151561040757600080fd5b50505060058501805460ff191660011790555b600154600160a060020a03166370a082318160006040516020015260405160e060020a63ffffffff8416028152600160a060020a039091166004820152602401602060405180830381600087803b151561047357600080fd5b6102c65a03f1151561048457600080fd5b5050506040518051600154909550600160a060020a0316905063dd62ed3e813060006040516020015260405160e060020a63ffffffff8516028152600160a060020a03928316600482015291166024820152604401602060405180830381600087803b15156104f257600080fd5b6102c65a03f1151561050357600080fd5b5050506040518051905092506105cd856101c0604051908101604090815282548252600183015460208301526002830154908201526003820154606082015260048201546080820152600582015460ff908116151560a0830152600683015460c0830152600783015460e08301526008830154610100808401919091526009840154610120840152600a909301548082166101408401529283048116610160830152620100008304811661018083015263010000009092049091166101a08201524234878761094b565b6001549193509150600160a060020a03166323b872dd81338560006040516020015260405160e060020a63ffffffff8616028152600160a060020a0393841660048201529190921660248201526044810191909152606401602060405180830381600087803b151561063e57600080fd5b6102c65a03f1151561064f57600080fd5b50505060405180515050600081111561069357600160a060020a03331681156108fc0282604051600060405180830381858888f19350505050151561069357600080fd5b5050505050565b600254600354600454600554600654600754600854600954600a54600b54600c5460ff9586169581811691610100810482169162010000820481169163010000009004168e565b60005433600160a060020a039081169116146106fc57600080fd5b6000805473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a0392909216919091179055565b60005433600160a060020a0390811691161461074657600080fd5b6018805460ff1916911515919091179055565b60006107636102e8565b9050600481600481111561077357fe5b1461077d57600080fd5b600154600160a060020a03166326abfe096040518163ffffffff1660e060020a028152600401600060405180830381600087803b15156107bc57600080fd5b6102c65a03f115156107cd57600080fd5b50505050565b600d54600e54600f5460105460115460125460135460145460155460165460175460ff9586169581811691610100810482169162010000820481169163010000009004168e565b60005433600160a060020a0390811691161461083557600080fd5b33600160a060020a03166108fc30600160a060020a0316319081150290604051600060405180830381858888f19350505050151561087257600080fd5b565b60185460ff1681565b600054600160a060020a031681565b60005433600160a060020a039081169116146108a757600080fd5b60006108b16102e8565b905060018160048111156108c157fe5b14806108d8575060038160048111156108d657fe5b145b15156108e357600080fd5b600154600160a060020a031663a0712d688360405160e060020a63ffffffff84160281526004810191909152602401600060405180830381600087803b151561092b57600080fd5b6102c65a03f1151561069357600080fd5b600154600160a060020a031681565b60008060008060008060008061096c8d606001518c9063ffffffff610ad616565b95508c6040015186101561097f57600080fd5b888a111561098d578861098f565b895b9450600093508486106109cd576109ac868663ffffffff610aeb16565b92506109c38d60600151849063ffffffff610afd16565b9350849550610ac3565b6109df8d518d9063ffffffff610aeb16565b9150600090508c60c00151821015610a2257610a1b6064610a0f8f6101400151899060ff1663ffffffff610afd16565b9063ffffffff610ad616565b9050610aa5565b8c60e00151821015610a4c57610a1b6064610a0f8f6101600151899060ff1663ffffffff610afd16565b8c6101000151821015610a7757610a1b6064610a0f8f6101800151899060ff1663ffffffff610afd16565b8c6101200151821015610aa557610aa26064610a0f8f6101a00151899060ff1663ffffffff610afd16565b90505b610ab5868263ffffffff610b1a16565b955084861115610ac3578495505b50939b919a509098505050505050505050565b60008183811515610ae357fe5b049392505050565b600082821115610af757fe5b50900390565b818102818382811515610b0c57fe5b0414610b1457fe5b92915050565b81810182811015610b1457fe00a165627a7a7230582031bdd28d5e12d9771497936c6743ed760c0174b22ff984c75826feaa4862475c00296060604052341561000f57600080fd5b604051602080610a8c8339810160405280805160008054600160a060020a03328116600160a060020a031992831617909255600180549290931691161790555050610a2d8061005f6000396000f3006060604052600436106100e55763ffffffff7c010000000000000000000000000000000000000000000000000000000060003504166306fdde0381146100f5578063075461721461017f578063095ea7b3146101ae57806313af4035146101e457806318160ddd1461020557806323b872dd1461022a57806326abfe0914610252578063313ce56714610265578063426a84931461028e57806370a08231146102b35780638da5cb5b146102d257806395d89b41146102e5578063a0712d68146102f8578063a9059cbb1461030e578063dd62ed3e14610330578063fca3b5aa14610355575b34156100f057600080fd5b600080fd5b341561010057600080fd5b610108610374565b60405160208082528190810183818151815260200191508051906020019080838360005b8381101561014457808201518382015260200161012c565b50505050905090810190601f1680156101715780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b341561018a57600080fd5b6101926103ab565b604051600160a060020a03909116815260200160405180910390f35b34156101b957600080fd5b6101d0600160a060020a03600435166024356103ba565b604051901515815260200160405180910390f35b34156101ef57600080fd5b610203600160a060020a036004351661041b565b005b341561021057600080fd5b6102186104ae565b60405190815260200160405180910390f35b341561023557600080fd5b6101d0600160a060020a03600435811690602435166044356104b4565b341561025d57600080fd5b61020361058a565b341561027057600080fd5b610278610620565b60405160ff909116815260200160405180910390f35b341561029957600080fd5b6101d0600160a060020a0360043516602435604435610625565b34156102be57600080fd5b610218600160a060020a03600435166106cb565b34156102dd57600080fd5b6101926106dd565b34156102f057600080fd5b6101086106ec565b341561030357600080fd5b610203600435610723565b341561031957600080fd5b6101d0600160a060020a03600435166024356107f6565b341561033b57600080fd5b610218600160a060020a0360043581169060243516610812565b341561036057600080fd5b610203600160a060020a036004351661082f565b60408051908101604052600681527f506179416c6c0000000000000000000000000000000000000000000000000000602082015281565b600154600160a060020a031681565b60006040366044146103cb57600080fd5b600160a060020a0333811660009081526004602090815260408083209388168352929052205415806103fb575082155b151561040657600080fd5b6104113385856108bb565b5060019392505050565b6000805433600160a060020a0390811691161461043757600080fd5b50600160a060020a033081811660009081526004602090815260408083208354909516808452949091528120549261046f92916108bb565b6000805473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a0384811691909117918290556104aa91309116836108bb565b5050565b60025481565b60006060366064146104c557600080fd5b600160a060020a03808616600090815260046020908152604080832033909416835292905220546104fc908463ffffffff61092216565b600160a060020a038087166000908152600460209081526040808320339094168352929052205561052e858585610934565b83600160a060020a031685600160a060020a031633600160a060020a03167fd1398bee19313d6bf672ccb116e51f4a1a947e91c757907f51fbb5b5e56c698f8660405190815260200160405180910390a4506001949350505050565b60015433600160a060020a039081169116146105a557600080fd5b6001546105be903090600160a060020a031660006108bb565b600080546105d7913091600160a060020a0316906108bb565b600160a060020a0330166000908152600360205260409020546002546106029163ffffffff61092216565b600255600160a060020a033016600090815260036020526040812055565b600081565b600060603660641461063657600080fd5b600160a060020a03338116600090815260046020908152604080832093891683529290522054841461066757600080fd5b6106723386856108bb565b84600160a060020a031633600160a060020a03167fb3fd5071835887567a0671151121894ddccc2842f1d10bedad13e0d17cace9a7868660405191825260208201526040908101905180910390a3506001949350505050565b60036020526000908152604090205481565b600054600160a060020a031681565b60408051908101604052600381527f504c4c0000000000000000000000000000000000000000000000000000000000602082015281565b60015460009033600160a060020a0390811691161461074157600080fd5b600254610754908363ffffffff6109ee16565b600255600160a060020a033016600090815260036020526040902054610780908363ffffffff6109ee16565b600160a060020a03308116600090815260036020908152604080832094909455600481528382203390931682529190915220546107c3908363ffffffff6109ee16565b6001549091506107de903090600160a060020a0316836108bb565b6000546104aa903090600160a060020a0316836108bb565b600060403660441461080757600080fd5b610411338585610934565b600460209081526000928352604080842090915290825290205481565b6000805433600160a060020a0390811691161461084b57600080fd5b50600160a060020a03308181166000908152600460209081526040808320600154909516808452949091528120549261088492916108bb565b6001805473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a0384811691909117918290556104aa91309116835b600160a060020a038084166000908152600460209081526040808320868516808552925291829020849055913316907f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b9259084905190815260200160405180910390a3505050565b60008282111561092e57fe5b50900390565b600160a060020a03831660009081526003602052604090205461095d908263ffffffff61092216565b600160a060020a038085166000908152600360205260408082209390935590841681522054610992908263ffffffff6109ee16565b600160a060020a03808416600081815260036020526040908190209390935591908516907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef9084905190815260200160405180910390a3505050565b818101828110156109fb57fe5b929150505600a165627a7a72305820651a97c64aa33644f03e2dae4e1e48b44316db559251feef2a22f3a78d1680d30029
Deployed Bytecode
0x60606040526004361061008a5763ffffffff60e060020a60003504166310c2a365811461016557806313af4035146101f757806316c38b3c1461021857806326abfe0914610230578063273ba6bb146102435780633ccfd60b146102565780635c975abb146102695780638da5cb5b14610290578063a0712d68146102bf578063fc0c546a146102d5575b6000806100956102e8565b905060018160048111156100a557fe5b14806100bc575060038160048111156100ba57fe5b145b15156100c757600080fd5b60185460ff16156100d757600080fd5b60006100e16102e8565b905060018160048111156100f157fe5b14801561010f57506005543481151561010657fe5b04600280015411155b806101425750600381600481111561012357fe5b14801561014257506010543481151561013857fe5b04600d6002015411155b151561014d57600080fd5b61015561033f565b92506101608361038f565b505050005b341561017057600080fd5b61017861069a565b6040519d8e5260208e019c909c526040808e019b909b5260608d019990995260808c019790975294151560a08b015260c08a019390935260e089019190915261010088015261012087015260ff9081166101408701529081166101608601529081166101808501529091166101a08301526101c0909101905180910390f35b341561020257600080fd5b610216600160a060020a03600435166106e1565b005b341561022357600080fd5b610216600435151561072b565b341561023b57600080fd5b610216610759565b341561024e57600080fd5b6101786107d3565b341561026157600080fd5b61021661081a565b341561027457600080fd5b61027c610874565b604051901515815260200160405180910390f35b341561029b57600080fd5b6102a361087d565b604051600160a060020a03909116815260200160405180910390f35b34156102ca57600080fd5b61021660043561088c565b34156102e057600080fd5b6102a361093c565b60004260026000015411156102ff5750600061033c565b600354429011156103125750600161033c565b600d54429011156103255750600261033c565b600e54429011156103385750600361033c565b5060045b90565b60008061034a6102e8565b9050600181600481111561035a57fe5b1415610369576002915061038b565b600381600481111561037757fe5b141561038657600d915061038b565b600080fd5b5090565b600581015460009081908190819060ff16151561041a576001546004860154600160a060020a039091169063a0712d689060405160e060020a63ffffffff84160281526004810191909152602401600060405180830381600087803b15156103f657600080fd5b6102c65a03f1151561040757600080fd5b50505060058501805460ff191660011790555b600154600160a060020a03166370a082318160006040516020015260405160e060020a63ffffffff8416028152600160a060020a039091166004820152602401602060405180830381600087803b151561047357600080fd5b6102c65a03f1151561048457600080fd5b5050506040518051600154909550600160a060020a0316905063dd62ed3e813060006040516020015260405160e060020a63ffffffff8516028152600160a060020a03928316600482015291166024820152604401602060405180830381600087803b15156104f257600080fd5b6102c65a03f1151561050357600080fd5b5050506040518051905092506105cd856101c0604051908101604090815282548252600183015460208301526002830154908201526003820154606082015260048201546080820152600582015460ff908116151560a0830152600683015460c0830152600783015460e08301526008830154610100808401919091526009840154610120840152600a909301548082166101408401529283048116610160830152620100008304811661018083015263010000009092049091166101a08201524234878761094b565b6001549193509150600160a060020a03166323b872dd81338560006040516020015260405160e060020a63ffffffff8616028152600160a060020a0393841660048201529190921660248201526044810191909152606401602060405180830381600087803b151561063e57600080fd5b6102c65a03f1151561064f57600080fd5b50505060405180515050600081111561069357600160a060020a03331681156108fc0282604051600060405180830381858888f19350505050151561069357600080fd5b5050505050565b600254600354600454600554600654600754600854600954600a54600b54600c5460ff9586169581811691610100810482169162010000820481169163010000009004168e565b60005433600160a060020a039081169116146106fc57600080fd5b6000805473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a0392909216919091179055565b60005433600160a060020a0390811691161461074657600080fd5b6018805460ff1916911515919091179055565b60006107636102e8565b9050600481600481111561077357fe5b1461077d57600080fd5b600154600160a060020a03166326abfe096040518163ffffffff1660e060020a028152600401600060405180830381600087803b15156107bc57600080fd5b6102c65a03f115156107cd57600080fd5b50505050565b600d54600e54600f5460105460115460125460135460145460155460165460175460ff9586169581811691610100810482169162010000820481169163010000009004168e565b60005433600160a060020a0390811691161461083557600080fd5b33600160a060020a03166108fc30600160a060020a0316319081150290604051600060405180830381858888f19350505050151561087257600080fd5b565b60185460ff1681565b600054600160a060020a031681565b60005433600160a060020a039081169116146108a757600080fd5b60006108b16102e8565b905060018160048111156108c157fe5b14806108d8575060038160048111156108d657fe5b145b15156108e357600080fd5b600154600160a060020a031663a0712d688360405160e060020a63ffffffff84160281526004810191909152602401600060405180830381600087803b151561092b57600080fd5b6102c65a03f1151561069357600080fd5b600154600160a060020a031681565b60008060008060008060008061096c8d606001518c9063ffffffff610ad616565b95508c6040015186101561097f57600080fd5b888a111561098d578861098f565b895b9450600093508486106109cd576109ac868663ffffffff610aeb16565b92506109c38d60600151849063ffffffff610afd16565b9350849550610ac3565b6109df8d518d9063ffffffff610aeb16565b9150600090508c60c00151821015610a2257610a1b6064610a0f8f6101400151899060ff1663ffffffff610afd16565b9063ffffffff610ad616565b9050610aa5565b8c60e00151821015610a4c57610a1b6064610a0f8f6101600151899060ff1663ffffffff610afd16565b8c6101000151821015610a7757610a1b6064610a0f8f6101800151899060ff1663ffffffff610afd16565b8c6101200151821015610aa557610aa26064610a0f8f6101a00151899060ff1663ffffffff610afd16565b90505b610ab5868263ffffffff610b1a16565b955084861115610ac3578495505b50939b919a509098505050505050505050565b60008183811515610ae357fe5b049392505050565b600082821115610af757fe5b50900390565b818102818382811515610b0c57fe5b0414610b1457fe5b92915050565b81810182811015610b1457fe00a165627a7a7230582031bdd28d5e12d9771497936c6743ed760c0174b22ff984c75826feaa4862475c0029
Swarm Source
bzzr://651a97c64aa33644f03e2dae4e1e48b44316db559251feef2a22f3a78d1680d3
Loading...
Loading
Loading...
Loading
Net Worth in USD
$0.00
Net Worth in ETH
0
Multichain Portfolio | 33 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.