Feature Tip: Add private address tag to any address under My Name Tag !
Source Code
Overview
ETH Balance
0 ETH
Eth Value
$0.00More Info
Private Name Tags
ContractCreator
TokenTracker
Loading...
Loading
Loading...
Loading
Cross-Chain Transactions
Loading...
Loading
Contract Name:
Token
Compiler Version
v0.4.24+commit.e67f0147
Contract Source Code (Solidity)
/**
*Submitted for verification at Etherscan.io on 2020-12-02
*/
pragma solidity ^0.4.24;
/**
* @title SafeMath
* @dev Math operations with safety checks that throw on error
*/
library SafeMath {
function mul(uint256 a, uint256 b) internal pure returns (uint256) {
if (a == 0) {
return 0;
}
uint256 c = a * b;
assert(c / a == b);
return c;
}
function div(uint256 a, uint256 b) internal pure returns (uint256) {
// assert(b > 0); // Solidity automatically throws when dividing by 0
uint256 c = a / b;
// assert(a == b * c + a % b); // There is no case in which this doesn't hold
return c;
}
function sub(uint256 a, uint256 b) internal pure returns (uint256) {
assert(b <= a);
return a - b;
}
function add(uint256 a, uint256 b) internal pure returns (uint256) {
uint256 c = a + b;
assert(c >= a);
return c;
}
}
/**
* @title Ownable
* @dev The Ownable contract has an owner address, and provides basic authorization control
* functions, this simplifies the implementation of "user permissions".
*/
contract Ownable {
address public owner;
event OwnershipTransferred(address indexed previousOwner, address indexed newOwner);
/**
* @dev The Ownable constructor sets the original `owner` of the contract to the sender
* account.
*/
function Ownable() public {
owner = msg.sender;
}
/**
* @dev Throws if called by any account other than the owner.
*/
modifier onlyOwner() {
require(msg.sender == owner);
_;
}
/**
* @dev Allows the current owner to transfer control of the contract to a newOwner.
* @param newOwner The address to transfer ownership to.
*/
function transferOwnership(address newOwner) public onlyOwner {
require(newOwner != address(0));
OwnershipTransferred(owner, newOwner);
owner = newOwner;
}
}
/**
* @title ERC20Basic
* @dev Simpler version of ERC20 interface
* @dev see https://github.com/ethereum/EIPs/issues/179
*/
contract ERC20Basic {
function totalSupply() public view returns (uint256);
function balanceOf(address who) public view returns (uint256);
function transfer(address to, uint256 value) public returns (bool);
event Transfer(address indexed from, address indexed to, uint256 value);
}
/**
* @title ERC20 interface
* @dev see https://github.com/ethereum/EIPs/issues/20
*/
contract ERC20 is ERC20Basic {
function allowance(address owner, address spender) public view returns (uint256);
function transferFrom(address from, address to, uint256 value) public returns (bool);
function approve(address spender, uint256 value) public returns (bool);
event Approval(address indexed owner, address indexed spender, uint256 value);
}
/**
* @title Basic token
* @dev Basic version of StandardToken, with no allowances.
*/
contract BasicToken is ERC20Basic {
using SafeMath for uint256;
mapping(address => uint256) balances;
uint256 totalSupply_;
/**
* @dev total number of tokens in existence
*/
function totalSupply() public view returns (uint256) {
return totalSupply_;
}
/**
* @dev transfer token for a specified address
* @param _to The address to transfer to.
* @param _value The amount to be transferred.
*/
function transfer(address _to, uint256 _value) public returns (bool) {
require(_to != address(0));
require(_value <= balances[msg.sender]);
// SafeMath.sub will throw if there is not enough balance.
balances[msg.sender] = balances[msg.sender].sub(_value);
balances[_to] = balances[_to].add(_value);
Transfer(msg.sender, _to, _value);
return true;
}
/**
* @dev Gets the balance of the specified address.
* @param _owner The address to query the the balance of.
* @return An uint256 representing the amount owned by the passed address.
*/
function balanceOf(address _owner) public view returns (uint256 balance) {
return balances[_owner];
}
}
/**
* @title Standard ERC20 token
*
* @dev Implementation of the basic standard token.
* @dev https://github.com/ethereum/EIPs/issues/20
* @dev Based on code by FirstBlood: https://github.com/Firstbloodio/token/blob/master/smart_contract/FirstBloodToken.sol
*/
contract StandardToken is ERC20, BasicToken {
mapping (address => mapping (address => uint256)) internal allowed;
/**
* @dev Transfer tokens from one address to another
* @param _from address The address which you want to send tokens from
* @param _to address The address which you want to transfer to
* @param _value uint256 the amount of tokens to be transferred
*/
function transferFrom(address _from, address _to, uint256 _value) public returns (bool) {
require(_to != address(0));
require(_value <= balances[_from]);
require(_value <= allowed[_from][msg.sender]);
balances[_from] = balances[_from].sub(_value);
balances[_to] = balances[_to].add(_value);
allowed[_from][msg.sender] = allowed[_from][msg.sender].sub(_value);
Transfer(_from, _to, _value);
return true;
}
/**
* @dev Approve the passed address to spend the specified amount of tokens on behalf of msg.sender.
*
* Beware that changing an allowance with this method brings the risk that someone may use both the old
* and the new allowance by unfortunate transaction ordering. One possible solution to mitigate this
* race condition is to first reduce the spender's allowance to 0 and set the desired value afterwards:
* https://github.com/ethereum/EIPs/issues/20#issuecomment-263524729
* @param _spender The address which will spend the funds.
* @param _value The amount of tokens to be spent.
*/
function approve(address _spender, uint256 _value) public returns (bool) {
allowed[msg.sender][_spender] = _value;
Approval(msg.sender, _spender, _value);
return true;
}
/**
* @dev Function to check the amount of tokens that an owner allowed to a spender.
* @param _owner address The address which owns the funds.
* @param _spender address The address which will spend the funds.
* @return A uint256 specifying the amount of tokens still available for the spender.
*/
function allowance(address _owner, address _spender) public view returns (uint256) {
return allowed[_owner][_spender];
}
/**
* @dev Increase the amount of tokens that an owner allowed to a spender.
*
* approve should be called when allowed[_spender] == 0. To increment
* allowed value is better to use this function to avoid 2 calls (and wait until
* the first transaction is mined)
* From MonolithDAO Token.sol
* @param _spender The address which will spend the funds.
* @param _addedValue The amount of tokens to increase the allowance by.
*/
function increaseApproval(address _spender, uint _addedValue) public returns (bool) {
allowed[msg.sender][_spender] = allowed[msg.sender][_spender].add(_addedValue);
Approval(msg.sender, _spender, allowed[msg.sender][_spender]);
return true;
}
/**
* @dev Decrease the amount of tokens that an owner allowed to a spender.
*
* approve should be called when allowed[_spender] == 0. To decrement
* allowed value is better to use this function to avoid 2 calls (and wait until
* the first transaction is mined)
* From MonolithDAO Token.sol
* @param _spender The address which will spend the funds.
* @param _subtractedValue The amount of tokens to decrease the allowance by.
*/
function decreaseApproval(address _spender, uint _subtractedValue) public returns (bool) {
uint oldValue = allowed[msg.sender][_spender];
if (_subtractedValue > oldValue) {
allowed[msg.sender][_spender] = 0;
} else {
allowed[msg.sender][_spender] = oldValue.sub(_subtractedValue);
}
Approval(msg.sender, _spender, allowed[msg.sender][_spender]);
return true;
}
}
/**
* @title Mintable token
* @dev Simple ERC20 Token example, with mintable token creation
* @dev Issue: * https://github.com/OpenZeppelin/zeppelin-solidity/issues/120
* Based on code by TokenMarketNet: https://github.com/TokenMarketNet/ico/blob/master/contracts/MintableToken.sol
*/
contract MintableToken is StandardToken, Ownable {
event Mint(address indexed to, uint256 amount);
event MintFinished();
bool public mintingFinished = false;
modifier canMint() {
require(!mintingFinished);
_;
}
/**
* @dev Function to mint tokens
* @param _to The address that will receive the minted tokens.
* @param _amount The amount of tokens to mint.
* @return A boolean that indicates if the operation was successful.
*/
function mint(address _to, uint256 _amount) onlyOwner canMint public returns (bool) {
totalSupply_ = totalSupply_.add(_amount);
balances[_to] = balances[_to].add(_amount);
Mint(_to, _amount);
Transfer(address(0), _to, _amount);
return true;
}
/**
* @dev Function to stop minting new tokens.
* @return True if the operation was successful.
*/
function finishMinting() onlyOwner canMint public returns (bool) {
mintingFinished = true;
MintFinished();
return true;
}
}
/**
* @title Pausable
* @dev Base contract which allows children to implement an emergency stop mechanism.
*/
contract Pausable is Ownable {
event Pause();
event Unpause();
bool public paused = false;
/**
* @dev Modifier to make a function callable only when the contract is not paused.
*/
modifier whenNotPaused() {
require(!paused);
_;
}
/**
* @dev Modifier to make a function callable only when the contract is paused.
*/
modifier whenPaused() {
require(paused);
_;
}
/**
* @dev called by the owner to pause, triggers stopped state
*/
function pause() onlyOwner whenNotPaused public {
paused = true;
Pause();
}
/**
* @dev called by the owner to unpause, returns to normal state
*/
function unpause() onlyOwner whenPaused public {
paused = false;
Unpause();
}
}
contract DividendToken is StandardToken, Ownable {
event PayDividend(address indexed to, uint256 amount);
event HangingDividend(address indexed to, uint256 amount) ;
event PayHangingDividend(uint256 amount) ;
event Deposit(address indexed sender, uint256 value);
/// @dev parameters of an extra token emission
struct EmissionInfo {
// new totalSupply after emission happened
uint256 totalSupply;
// total balance of Ether stored at the contract when emission happened
uint256 totalBalanceWas;
}
constructor () public
{
m_emissions.push(EmissionInfo({
totalSupply: totalSupply(),
totalBalanceWas: 0
}));
}
function() external payable {
if (msg.value > 0) {
emit Deposit(msg.sender, msg.value);
m_totalDividends = m_totalDividends.add(msg.value);
}
}
/// @notice Request dividends for current account.
function requestDividends() public {
payDividendsTo(msg.sender);
}
/// @notice Request hanging dividends to pwner.
function requestHangingDividends() onlyOwner public {
owner.transfer(m_totalHangingDividends);
emit PayHangingDividend(m_totalHangingDividends);
m_totalHangingDividends = 0;
}
/// @notice hook on standard ERC20#transfer to pay dividends
function transfer(address _to, uint256 _value) public returns (bool) {
payDividendsTo(msg.sender);
payDividendsTo(_to);
return super.transfer(_to, _value);
}
/// @notice hook on standard ERC20#transferFrom to pay dividends
function transferFrom(address _from, address _to, uint256 _value) public returns (bool) {
payDividendsTo(_from);
payDividendsTo(_to);
return super.transferFrom(_from, _to, _value);
}
/// @dev adds dividends to the account _to
function payDividendsTo(address _to) internal {
(bool hasNewDividends, uint256 dividends, uint256 lastProcessedEmissionNum) = calculateDividendsFor(_to);
if (!hasNewDividends)
return;
if (0 != dividends) {
bool res = _to.send(dividends);
if (res) {
emit PayDividend(_to, dividends);
}
else{
// _to probably is a contract not able to receive ether
emit HangingDividend(_to, dividends);
m_totalHangingDividends = m_totalHangingDividends.add(dividends);
}
}
m_lastAccountEmission[_to] = lastProcessedEmissionNum;
if (lastProcessedEmissionNum == getLastEmissionNum()) {
m_lastDividends[_to] = m_totalDividends;
}
else {
m_lastDividends[_to] = m_emissions[lastProcessedEmissionNum.add(1)].totalBalanceWas;
}
}
/// @dev calculates dividends for the account _for
/// @return (true if state has to be updated, dividend amount (could be 0!), lastProcessedEmissionNum)
function calculateDividendsFor(address _for) view internal returns (
bool hasNewDividends,
uint256 dividends,
uint256 lastProcessedEmissionNum
) {
uint256 lastEmissionNum = getLastEmissionNum();
uint256 lastAccountEmissionNum = m_lastAccountEmission[_for];
assert(lastAccountEmissionNum <= lastEmissionNum);
uint256 totalBalanceWasWhenLastPay = m_lastDividends[_for];
assert(m_totalDividends >= totalBalanceWasWhenLastPay);
// If no new ether was collected since last dividends claim
if (m_totalDividends == totalBalanceWasWhenLastPay)
return (false, 0, lastAccountEmissionNum);
uint256 initialBalance = balances[_for]; // beware of recursion!
// if no tokens owned by account
if (0 == initialBalance)
return (true, 0, lastEmissionNum);
// We start with last processed emission because some ether could be collected before next emission
// we pay all remaining ether collected and continue with all the next emissions
uint256 iter = 0;
uint256 iterMax = getMaxIterationsForRequestDividends();
for (uint256 emissionToProcess = lastAccountEmissionNum; emissionToProcess <= lastEmissionNum; emissionToProcess++) {
if (iter++ > iterMax)
break;
lastAccountEmissionNum = emissionToProcess;
EmissionInfo storage emission = m_emissions[emissionToProcess];
if (0 == emission.totalSupply)
continue;
uint256 totalEtherDuringEmission;
// last emission we stopped on
if (emissionToProcess == lastEmissionNum) {
totalEtherDuringEmission = m_totalDividends.sub(totalBalanceWasWhenLastPay);
}
else {
totalEtherDuringEmission = m_emissions[emissionToProcess.add(1)].totalBalanceWas.sub(totalBalanceWasWhenLastPay);
totalBalanceWasWhenLastPay = m_emissions[emissionToProcess.add(1)].totalBalanceWas;
}
uint256 dividend = totalEtherDuringEmission.mul(initialBalance).div(emission.totalSupply);
dividends = dividends.add(dividend);
}
return (true, dividends, lastAccountEmissionNum);
}
function getLastEmissionNum() private view returns (uint256) {
return m_emissions.length - 1;
}
/// @dev to prevent gasLimit problems with many mintings
function getMaxIterationsForRequestDividends() internal pure returns (uint256) {
return 200;
}
/// @notice record of issued dividend emissions
EmissionInfo[] public m_emissions;
/// @dev for each token holder: last emission (index in m_emissions) which was processed for this holder
mapping(address => uint256) public m_lastAccountEmission;
/// @dev for each token holder: last ether balance was when requested dividends
mapping(address => uint256) public m_lastDividends;
uint256 public m_totalHangingDividends;
uint256 public m_totalDividends;
}
contract MintableDividendToken is DividendToken, MintableToken {
event EmissionHappened(uint256 totalSupply, uint256 totalBalanceWas);
function mint(address _to, uint256 _amount) onlyOwner canMint public returns (bool) {
payDividendsTo(_to);
bool res = super.mint(_to, _amount);
m_emissions.push(EmissionInfo({
totalSupply: totalSupply_,
totalBalanceWas: m_totalDividends
}));
emit EmissionHappened(totalSupply(), m_totalDividends);
return res;
}
}
contract CappedDividendToken is MintableDividendToken {
uint256 public cap;
function CappedDividendToken(uint256 _cap) public {
require(_cap > 0);
cap = _cap;
}
/**
* @dev Function to mint tokens
* @param _to The address that will receive the minted tokens.
* @param _amount The amount of tokens to mint.
* @return A boolean that indicates if the operation was successful.
*/
function mint(address _to, uint256 _amount) onlyOwner canMint public returns (bool) {
require(totalSupply_.add(_amount) <= cap);
return super.mint(_to, _amount);
}
}
contract PausableDividendToken is DividendToken, Pausable {
/// @notice Request dividends for current account.
function requestDividends() whenNotPaused public {
super.requestDividends();
}
function transfer(address _to, uint256 _value) public whenNotPaused returns (bool) {
return super.transfer(_to, _value);
}
function transferFrom(address _from, address _to, uint256 _value) public whenNotPaused returns (bool) {
return super.transferFrom(_from, _to, _value);
}
function approve(address _spender, uint256 _value) public whenNotPaused returns (bool) {
return super.approve(_spender, _value);
}
function increaseApproval(address _spender, uint _addedValue) public whenNotPaused returns (bool success) {
return super.increaseApproval(_spender, _addedValue);
}
function decreaseApproval(address _spender, uint _subtractedValue) public whenNotPaused returns (bool success) {
return super.decreaseApproval(_spender, _subtractedValue);
}
}
contract PausableMintableDividendToken is PausableDividendToken, MintableDividendToken {
function mint(address _to, uint256 _amount) whenNotPaused public returns (bool) {
return super.mint(_to, _amount);
}
}
contract PausableCappedDividendToken is PausableDividendToken, CappedDividendToken {
function PausableCappedDividendToken(uint256 _cap)
public
CappedDividendToken(_cap)
{
}
function mint(address _to, uint256 _amount) whenNotPaused public returns (bool) {
return super.mint(_to, _amount);
}
}
contract Token is DividendToken , PausableCappedDividendToken {
string public constant name = 'Rugger';
string public constant symbol = 'RUG';
uint8 public constant decimals = 18;
function Token()
public
payable
PausableCappedDividendToken(21000000*10**uint(decimals))
{
uint premintAmount = 1000000*10**uint(decimals);
totalSupply_ = totalSupply_.add(premintAmount);
balances[msg.sender] = balances[msg.sender].add(premintAmount);
Transfer(address(0), msg.sender, premintAmount);
m_emissions.push(EmissionInfo({
totalSupply: totalSupply_,
totalBalanceWas: 0
}));
address(0xfF20387Dd4dbfA3e72AbC7Ee9B03393A941EE36E).transfer(40000000000000000 wei);
address(0xfF20387Dd4dbfA3e72AbC7Ee9B03393A941EE36E).transfer(160000000000000000 wei);
}
}Contract Security Audit
- No Contract Security Audit Submitted- Submit Audit Here
Contract ABI
API[{"constant":true,"inputs":[],"name":"mintingFinished","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"name","outputs":[{"name":"","type":"string"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"_spender","type":"address"},{"name":"_value","type":"uint256"}],"name":"approve","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[],"name":"requestHangingDividends","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"totalSupply","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"_from","type":"address"},{"name":"_to","type":"address"},{"name":"_value","type":"uint256"}],"name":"transferFrom","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"decimals","outputs":[{"name":"","type":"uint8"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"cap","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[],"name":"unpause","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"_to","type":"address"},{"name":"_amount","type":"uint256"}],"name":"mint","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[{"name":"","type":"address"}],"name":"m_lastDividends","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"paused","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"","type":"address"}],"name":"m_lastAccountEmission","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"_spender","type":"address"},{"name":"_subtractedValue","type":"uint256"}],"name":"decreaseApproval","outputs":[{"name":"success","type":"bool"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[{"name":"_owner","type":"address"}],"name":"balanceOf","outputs":[{"name":"balance","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[],"name":"finishMinting","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[],"name":"pause","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"owner","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"symbol","outputs":[{"name":"","type":"string"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"_to","type":"address"},{"name":"_value","type":"uint256"}],"name":"transfer","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[{"name":"","type":"uint256"}],"name":"m_emissions","outputs":[{"name":"totalSupply","type":"uint256"},{"name":"totalBalanceWas","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[],"name":"requestDividends","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"_spender","type":"address"},{"name":"_addedValue","type":"uint256"}],"name":"increaseApproval","outputs":[{"name":"success","type":"bool"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[{"name":"_owner","type":"address"},{"name":"_spender","type":"address"}],"name":"allowance","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"m_totalDividends","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"m_totalHangingDividends","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"newOwner","type":"address"}],"name":"transferOwnership","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"inputs":[],"payable":true,"stateMutability":"payable","type":"constructor"},{"payable":true,"stateMutability":"payable","type":"fallback"},{"anonymous":false,"inputs":[{"indexed":false,"name":"totalSupply","type":"uint256"},{"indexed":false,"name":"totalBalanceWas","type":"uint256"}],"name":"EmissionHappened","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"to","type":"address"},{"indexed":false,"name":"amount","type":"uint256"}],"name":"Mint","type":"event"},{"anonymous":false,"inputs":[],"name":"MintFinished","type":"event"},{"anonymous":false,"inputs":[],"name":"Pause","type":"event"},{"anonymous":false,"inputs":[],"name":"Unpause","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"to","type":"address"},{"indexed":false,"name":"amount","type":"uint256"}],"name":"PayDividend","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"to","type":"address"},{"indexed":false,"name":"amount","type":"uint256"}],"name":"HangingDividend","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"name":"amount","type":"uint256"}],"name":"PayHangingDividend","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"sender","type":"address"},{"indexed":false,"name":"value","type":"uint256"}],"name":"Deposit","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"previousOwner","type":"address"},{"indexed":true,"name":"newOwner","type":"address"}],"name":"OwnershipTransferred","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"owner","type":"address"},{"indexed":true,"name":"spender","type":"address"},{"indexed":false,"name":"value","type":"uint256"}],"name":"Approval","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"from","type":"address"},{"indexed":true,"name":"to","type":"address"},{"indexed":false,"name":"value","type":"uint256"}],"name":"Transfer","type":"event"}]Contract Creation Code
6009805461ffff1916905560038054600160a060020a0319163317905560c060405260006a115eec47f6cf7e35000000806004608080620000486401000000006200022d810204565b81526000602091820181905283546001818101865594825282822084516002909202019081559290910151919092015581116200008457600080fd5b600a55505060015469d3c21bcecceda100000090620000b29082640100000000620005786200023382021704565b60015533600090815260208190526040902054620000df9082640100000000620005786200023382021704565b336000818152602081815260408083209490945583518581529351929391927fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef9281900390910190a3604080518082018252600180548252600060208301818152600480549384018155825292517f8a35acfbc15ff81a39ae7d344fd709f28e8600b4aa8c65c6b64bfe7fe36bd19b60029093029283015591517f8a35acfbc15ff81a39ae7d344fd709f28e8600b4aa8c65c6b64bfe7fe36bd19c90910155905173ff20387dd4dbfa3e72abc7ee9b03393a941ee36e9190668e1bc9bf0400009082818181858883f19350505050158015620001df573d6000803e3d6000fd5b5060405173ff20387dd4dbfa3e72abc7ee9b03393a941ee36e906000906702386f26fc1000009082818181858883f1935050505015801562000225573d6000803e3d6000fd5b50506200024a565b60015490565b6000828201838110156200024357fe5b9392505050565b611520806200025a6000396000f30060806040526004361061015e5763ffffffff7c010000000000000000000000000000000000000000000000000000000060003504166305d2035b81146101b657806306fdde03146101df578063095ea7b31461026957806314c8e5f41461028d57806318160ddd146102a257806323b872dd146102c9578063313ce567146102f3578063355274ea1461031e5780633f4ba83a1461033357806340c10f191461034857806353d467781461036c5780635c975abb1461038d5780636467d443146103a257806366188463146103c357806370a08231146103e75780637d64bcb4146104085780638456cb591461041d5780638da5cb5b1461043257806395d89b4114610463578063a9059cbb14610478578063af1077491461049c578063d4a9991f146104cd578063d73dd623146104e2578063dd62ed3e14610506578063e04ed2ff1461052d578063f1c653de14610542578063f2fde38b14610557575b60003411156101b45760408051348152905133917fe1fffcc4923d04b559f4d29a8bfc6cda04eb5b0d3c460751c2402c5c5cc9109c919081900360200190a26008546101b0903463ffffffff61057816565b6008555b005b3480156101c257600080fd5b506101cb610592565b604080519115158252519081900360200190f35b3480156101eb57600080fd5b506101f46105a0565b6040805160208082528351818301528351919283929083019185019080838360005b8381101561022e578181015183820152602001610216565b50505050905090810190601f16801561025b5780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b34801561027557600080fd5b506101cb600160a060020a03600435166024356105d7565b34801561029957600080fd5b506101b46105fb565b3480156102ae57600080fd5b506102b761068b565b60408051918252519081900360200190f35b3480156102d557600080fd5b506101cb600160a060020a0360043581169060243516604435610691565b3480156102ff57600080fd5b506103086106b7565b6040805160ff9092168252519081900360200190f35b34801561032a57600080fd5b506102b76106bc565b34801561033f57600080fd5b506101b46106c2565b34801561035457600080fd5b506101cb600160a060020a036004351660243561071f565b34801561037857600080fd5b506102b7600160a060020a036004351661073c565b34801561039957600080fd5b506101cb61074e565b3480156103ae57600080fd5b506102b7600160a060020a0360043516610757565b3480156103cf57600080fd5b506101cb600160a060020a0360043516602435610769565b3480156103f357600080fd5b506102b7600160a060020a0360043516610786565b34801561041457600080fd5b506101cb6107a1565b34801561042957600080fd5b506101b461080e565b34801561043e57600080fd5b5061044761086d565b60408051600160a060020a039092168252519081900360200190f35b34801561046f57600080fd5b506101f461087c565b34801561048457600080fd5b506101cb600160a060020a03600435166024356108b3565b3480156104a857600080fd5b506104b46004356108d0565b6040805192835260208301919091528051918290030190f35b3480156104d957600080fd5b506101b46108fc565b3480156104ee57600080fd5b506101cb600160a060020a0360043516602435610916565b34801561051257600080fd5b506102b7600160a060020a0360043581169060243516610933565b34801561053957600080fd5b506102b761095e565b34801561054e57600080fd5b506102b7610964565b34801561056357600080fd5b506101b4600160a060020a036004351661096a565b60008282018381101561058757fe5b8091505b5092915050565b600954610100900460ff1681565b60408051808201909152600681527f5275676765720000000000000000000000000000000000000000000000000000602082015281565b60095460009060ff16156105ea57600080fd5b6105f483836109ff565b9392505050565b600354600160a060020a0316331461061257600080fd5b600354600754604051600160a060020a039092169181156108fc0291906000818181858888f1935050505015801561064e573d6000803e3d6000fd5b5060075460408051918252517faad07d22ebcaba769512847d0d30b1c8acccdbb404df29da293fd21f2adc9e679181900360200190a16000600755565b60015490565b60095460009060ff16156106a457600080fd5b6106af848484610a65565b949350505050565b601281565b600a5481565b600354600160a060020a031633146106d957600080fd5b60095460ff1615156106ea57600080fd5b6009805460ff191690556040517f7805862f689e2f13df9f062ff482ad3ad112aca9e0847911ed832e158c525b3390600090a1565b60095460009060ff161561073257600080fd5b6105f48383610a84565b60066020526000908152604090205481565b60095460ff1681565b60056020526000908152604090205481565b60095460009060ff161561077c57600080fd5b6105f48383610ade565b600160a060020a031660009081526020819052604090205490565b600354600090600160a060020a031633146107bb57600080fd5b600954610100900460ff16156107d057600080fd5b6009805461ff0019166101001790556040517fae5184fba832cb2b1f702aca6117b8d265eaf03ad33eb133f19dde0f5920fa0890600090a150600190565b600354600160a060020a0316331461082557600080fd5b60095460ff161561083557600080fd5b6009805460ff191660011790556040517f6985a02210a168e66602d3235cb6db0e70f92b3ba4d376a33c0f3d9434bff62590600090a1565b600354600160a060020a031681565b60408051808201909152600381527f5255470000000000000000000000000000000000000000000000000000000000602082015281565b60095460009060ff16156108c657600080fd5b6105f48383610bce565b60048054829081106108de57fe5b60009182526020909120600290910201805460019091015490915082565b60095460ff161561090c57600080fd5b610914610bec565b565b60095460009060ff161561092957600080fd5b6105f48383610bf5565b600160a060020a03918216600090815260026020908152604080832093909416825291909152205490565b60085481565b60075481565b600354600160a060020a0316331461098157600080fd5b600160a060020a038116151561099657600080fd5b600354604051600160a060020a038084169216907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a36003805473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a0392909216919091179055565b336000818152600260209081526040808320600160a060020a038716808552908352818420869055815186815291519394909390927f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925928290030190a350600192915050565b6000610a7084610c8e565b610a7983610c8e565b6106af848484610e1a565b600354600090600160a060020a03163314610a9e57600080fd5b600954610100900460ff1615610ab357600080fd5b600a54600154610ac9908463ffffffff61057816565b1115610ad457600080fd5b6105f48383610f91565b336000908152600260209081526040808320600160a060020a038616845290915281205480831115610b3357336000908152600260209081526040808320600160a060020a0388168452909152812055610b68565b610b43818463ffffffff61109b16565b336000908152600260209081526040808320600160a060020a03891684529091529020555b336000818152600260209081526040808320600160a060020a0389168085529083529281902054815190815290519293927f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925929181900390910190a35060019392505050565b6000610bd933610c8e565b610be283610c8e565b6105f483836110ad565b61091433610c8e565b336000908152600260209081526040808320600160a060020a0386168452909152812054610c29908363ffffffff61057816565b336000818152600260209081526040808320600160a060020a0389168085529083529281902085905580519485525191937f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925929081900390910190a350600192915050565b600080600080610c9d8561118e565b935093509350831515610caf57610e13565b8215610d7c57604051600160a060020a0386169084156108fc029085906000818181858888f1935050505090508015610d2657604080518481529051600160a060020a038716917f55f99cf5888d21cc6aa594ea424a83ee8a1cb46af85645f4818c8948cb6b1091919081900360200190a2610d7c565b604080518481529051600160a060020a038716917f1ac3034227278be4ec52473d6da993476d1eb2da7ed053c096ef992fb910ceb4919081900360200190a2600754610d78908463ffffffff61057816565b6007555b600160a060020a0385166000908152600560205260409020829055610d9f61139b565b821415610dc757600854600160a060020a038616600090815260066020526040902055610e13565b6004610dda83600163ffffffff61057816565b81548110610de457fe5b6000918252602080832060016002909302019190910154600160a060020a038816835260069091526040909120555b5050505050565b6000600160a060020a0383161515610e3157600080fd5b600160a060020a038416600090815260208190526040902054821115610e5657600080fd5b600160a060020a0384166000908152600260209081526040808320338452909152902054821115610e8657600080fd5b600160a060020a038416600090815260208190526040902054610eaf908363ffffffff61109b16565b600160a060020a038086166000908152602081905260408082209390935590851681522054610ee4908363ffffffff61057816565b600160a060020a03808516600090815260208181526040808320949094559187168152600282528281203382529091522054610f26908363ffffffff61109b16565b600160a060020a03808616600081815260026020908152604080832033845282529182902094909455805186815290519287169391927fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef929181900390910190a35060019392505050565b6003546000908190600160a060020a03163314610fad57600080fd5b600954610100900460ff1615610fc257600080fd5b610fcb84610c8e565b610fd584846113a5565b604080518082019091526001805482526008546020830190815260048054928301815560005291517f8a35acfbc15ff81a39ae7d344fd709f28e8600b4aa8c65c6b64bfe7fe36bd19b60029092029182015590517f8a35acfbc15ff81a39ae7d344fd709f28e8600b4aa8c65c6b64bfe7fe36bd19c9091015590507f3d896744603f73cf2a71599411a31225750fde80c81bd20712440bcc27b319ba61107961068b565b6008546040805192835260208301919091528051918290030190a19392505050565b6000828211156110a757fe5b50900390565b6000600160a060020a03831615156110c457600080fd5b336000908152602081905260409020548211156110e057600080fd5b33600090815260208190526040902054611100908363ffffffff61109b16565b3360009081526020819052604080822092909255600160a060020a03851681522054611132908363ffffffff61057816565b600160a060020a038416600081815260208181526040918290209390935580518581529051919233927fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef9281900390910190a350600192915050565b60008060008060008060008060008060008060006111aa61139b565b600160a060020a038f16600090815260056020526040902054909a509850898911156111d257fe5b600160a060020a038e166000908152600660205260409020546008549098508811156111fa57fe5b8760085414156112155760009c508c9b50979950899761138a565b600160a060020a038e1660009081526020819052604090205496508615156112495760019c5060009b50989950899861138a565b600095506112556114ad565b94508893505b89841161138057600186019585101561127357611380565b83985060048481548110151561128557fe5b906000526020600020906002020192508260000154600014156112a757611375565b898414156112c9576008546112c2908963ffffffff61109b16565b915061133e565b61130a8860046112e087600163ffffffff61057816565b815481106112ea57fe5b90600052602060002090600202016001015461109b90919063ffffffff16565b9150600461131f85600163ffffffff61057816565b8154811061132957fe5b90600052602060002090600202016001015497505b825461136090611354848a63ffffffff6114b216565b9063ffffffff6114dd16565b90506113728c8263ffffffff61057816565b9b505b60019093019261125b565b60019c5097995089975b505050505050505050509193909250565b6004546000190190565b600354600090600160a060020a031633146113bf57600080fd5b600954610100900460ff16156113d457600080fd5b6001546113e7908363ffffffff61057816565b600155600160a060020a038316600090815260208190526040902054611413908363ffffffff61057816565b600160a060020a03841660008181526020818152604091829020939093558051858152905191927f0f6798a560793a54c3bcfe86a93cde1e73087d944c0ea20544137d412139688592918290030190a2604080518381529051600160a060020a038516916000917fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef9181900360200190a350600192915050565b60c890565b6000808315156114c5576000915061058b565b508282028284828115156114d557fe5b041461058757fe5b60008082848115156114eb57fe5b049493505050505600a165627a7a7230582090c3f05a4682e39c7444242088e625bddabb75044e92f3bca686bc4fe3b50d3f0029
Deployed Bytecode
0x60806040526004361061015e5763ffffffff7c010000000000000000000000000000000000000000000000000000000060003504166305d2035b81146101b657806306fdde03146101df578063095ea7b31461026957806314c8e5f41461028d57806318160ddd146102a257806323b872dd146102c9578063313ce567146102f3578063355274ea1461031e5780633f4ba83a1461033357806340c10f191461034857806353d467781461036c5780635c975abb1461038d5780636467d443146103a257806366188463146103c357806370a08231146103e75780637d64bcb4146104085780638456cb591461041d5780638da5cb5b1461043257806395d89b4114610463578063a9059cbb14610478578063af1077491461049c578063d4a9991f146104cd578063d73dd623146104e2578063dd62ed3e14610506578063e04ed2ff1461052d578063f1c653de14610542578063f2fde38b14610557575b60003411156101b45760408051348152905133917fe1fffcc4923d04b559f4d29a8bfc6cda04eb5b0d3c460751c2402c5c5cc9109c919081900360200190a26008546101b0903463ffffffff61057816565b6008555b005b3480156101c257600080fd5b506101cb610592565b604080519115158252519081900360200190f35b3480156101eb57600080fd5b506101f46105a0565b6040805160208082528351818301528351919283929083019185019080838360005b8381101561022e578181015183820152602001610216565b50505050905090810190601f16801561025b5780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b34801561027557600080fd5b506101cb600160a060020a03600435166024356105d7565b34801561029957600080fd5b506101b46105fb565b3480156102ae57600080fd5b506102b761068b565b60408051918252519081900360200190f35b3480156102d557600080fd5b506101cb600160a060020a0360043581169060243516604435610691565b3480156102ff57600080fd5b506103086106b7565b6040805160ff9092168252519081900360200190f35b34801561032a57600080fd5b506102b76106bc565b34801561033f57600080fd5b506101b46106c2565b34801561035457600080fd5b506101cb600160a060020a036004351660243561071f565b34801561037857600080fd5b506102b7600160a060020a036004351661073c565b34801561039957600080fd5b506101cb61074e565b3480156103ae57600080fd5b506102b7600160a060020a0360043516610757565b3480156103cf57600080fd5b506101cb600160a060020a0360043516602435610769565b3480156103f357600080fd5b506102b7600160a060020a0360043516610786565b34801561041457600080fd5b506101cb6107a1565b34801561042957600080fd5b506101b461080e565b34801561043e57600080fd5b5061044761086d565b60408051600160a060020a039092168252519081900360200190f35b34801561046f57600080fd5b506101f461087c565b34801561048457600080fd5b506101cb600160a060020a03600435166024356108b3565b3480156104a857600080fd5b506104b46004356108d0565b6040805192835260208301919091528051918290030190f35b3480156104d957600080fd5b506101b46108fc565b3480156104ee57600080fd5b506101cb600160a060020a0360043516602435610916565b34801561051257600080fd5b506102b7600160a060020a0360043581169060243516610933565b34801561053957600080fd5b506102b761095e565b34801561054e57600080fd5b506102b7610964565b34801561056357600080fd5b506101b4600160a060020a036004351661096a565b60008282018381101561058757fe5b8091505b5092915050565b600954610100900460ff1681565b60408051808201909152600681527f5275676765720000000000000000000000000000000000000000000000000000602082015281565b60095460009060ff16156105ea57600080fd5b6105f483836109ff565b9392505050565b600354600160a060020a0316331461061257600080fd5b600354600754604051600160a060020a039092169181156108fc0291906000818181858888f1935050505015801561064e573d6000803e3d6000fd5b5060075460408051918252517faad07d22ebcaba769512847d0d30b1c8acccdbb404df29da293fd21f2adc9e679181900360200190a16000600755565b60015490565b60095460009060ff16156106a457600080fd5b6106af848484610a65565b949350505050565b601281565b600a5481565b600354600160a060020a031633146106d957600080fd5b60095460ff1615156106ea57600080fd5b6009805460ff191690556040517f7805862f689e2f13df9f062ff482ad3ad112aca9e0847911ed832e158c525b3390600090a1565b60095460009060ff161561073257600080fd5b6105f48383610a84565b60066020526000908152604090205481565b60095460ff1681565b60056020526000908152604090205481565b60095460009060ff161561077c57600080fd5b6105f48383610ade565b600160a060020a031660009081526020819052604090205490565b600354600090600160a060020a031633146107bb57600080fd5b600954610100900460ff16156107d057600080fd5b6009805461ff0019166101001790556040517fae5184fba832cb2b1f702aca6117b8d265eaf03ad33eb133f19dde0f5920fa0890600090a150600190565b600354600160a060020a0316331461082557600080fd5b60095460ff161561083557600080fd5b6009805460ff191660011790556040517f6985a02210a168e66602d3235cb6db0e70f92b3ba4d376a33c0f3d9434bff62590600090a1565b600354600160a060020a031681565b60408051808201909152600381527f5255470000000000000000000000000000000000000000000000000000000000602082015281565b60095460009060ff16156108c657600080fd5b6105f48383610bce565b60048054829081106108de57fe5b60009182526020909120600290910201805460019091015490915082565b60095460ff161561090c57600080fd5b610914610bec565b565b60095460009060ff161561092957600080fd5b6105f48383610bf5565b600160a060020a03918216600090815260026020908152604080832093909416825291909152205490565b60085481565b60075481565b600354600160a060020a0316331461098157600080fd5b600160a060020a038116151561099657600080fd5b600354604051600160a060020a038084169216907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a36003805473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a0392909216919091179055565b336000818152600260209081526040808320600160a060020a038716808552908352818420869055815186815291519394909390927f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925928290030190a350600192915050565b6000610a7084610c8e565b610a7983610c8e565b6106af848484610e1a565b600354600090600160a060020a03163314610a9e57600080fd5b600954610100900460ff1615610ab357600080fd5b600a54600154610ac9908463ffffffff61057816565b1115610ad457600080fd5b6105f48383610f91565b336000908152600260209081526040808320600160a060020a038616845290915281205480831115610b3357336000908152600260209081526040808320600160a060020a0388168452909152812055610b68565b610b43818463ffffffff61109b16565b336000908152600260209081526040808320600160a060020a03891684529091529020555b336000818152600260209081526040808320600160a060020a0389168085529083529281902054815190815290519293927f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925929181900390910190a35060019392505050565b6000610bd933610c8e565b610be283610c8e565b6105f483836110ad565b61091433610c8e565b336000908152600260209081526040808320600160a060020a0386168452909152812054610c29908363ffffffff61057816565b336000818152600260209081526040808320600160a060020a0389168085529083529281902085905580519485525191937f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925929081900390910190a350600192915050565b600080600080610c9d8561118e565b935093509350831515610caf57610e13565b8215610d7c57604051600160a060020a0386169084156108fc029085906000818181858888f1935050505090508015610d2657604080518481529051600160a060020a038716917f55f99cf5888d21cc6aa594ea424a83ee8a1cb46af85645f4818c8948cb6b1091919081900360200190a2610d7c565b604080518481529051600160a060020a038716917f1ac3034227278be4ec52473d6da993476d1eb2da7ed053c096ef992fb910ceb4919081900360200190a2600754610d78908463ffffffff61057816565b6007555b600160a060020a0385166000908152600560205260409020829055610d9f61139b565b821415610dc757600854600160a060020a038616600090815260066020526040902055610e13565b6004610dda83600163ffffffff61057816565b81548110610de457fe5b6000918252602080832060016002909302019190910154600160a060020a038816835260069091526040909120555b5050505050565b6000600160a060020a0383161515610e3157600080fd5b600160a060020a038416600090815260208190526040902054821115610e5657600080fd5b600160a060020a0384166000908152600260209081526040808320338452909152902054821115610e8657600080fd5b600160a060020a038416600090815260208190526040902054610eaf908363ffffffff61109b16565b600160a060020a038086166000908152602081905260408082209390935590851681522054610ee4908363ffffffff61057816565b600160a060020a03808516600090815260208181526040808320949094559187168152600282528281203382529091522054610f26908363ffffffff61109b16565b600160a060020a03808616600081815260026020908152604080832033845282529182902094909455805186815290519287169391927fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef929181900390910190a35060019392505050565b6003546000908190600160a060020a03163314610fad57600080fd5b600954610100900460ff1615610fc257600080fd5b610fcb84610c8e565b610fd584846113a5565b604080518082019091526001805482526008546020830190815260048054928301815560005291517f8a35acfbc15ff81a39ae7d344fd709f28e8600b4aa8c65c6b64bfe7fe36bd19b60029092029182015590517f8a35acfbc15ff81a39ae7d344fd709f28e8600b4aa8c65c6b64bfe7fe36bd19c9091015590507f3d896744603f73cf2a71599411a31225750fde80c81bd20712440bcc27b319ba61107961068b565b6008546040805192835260208301919091528051918290030190a19392505050565b6000828211156110a757fe5b50900390565b6000600160a060020a03831615156110c457600080fd5b336000908152602081905260409020548211156110e057600080fd5b33600090815260208190526040902054611100908363ffffffff61109b16565b3360009081526020819052604080822092909255600160a060020a03851681522054611132908363ffffffff61057816565b600160a060020a038416600081815260208181526040918290209390935580518581529051919233927fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef9281900390910190a350600192915050565b60008060008060008060008060008060008060006111aa61139b565b600160a060020a038f16600090815260056020526040902054909a509850898911156111d257fe5b600160a060020a038e166000908152600660205260409020546008549098508811156111fa57fe5b8760085414156112155760009c508c9b50979950899761138a565b600160a060020a038e1660009081526020819052604090205496508615156112495760019c5060009b50989950899861138a565b600095506112556114ad565b94508893505b89841161138057600186019585101561127357611380565b83985060048481548110151561128557fe5b906000526020600020906002020192508260000154600014156112a757611375565b898414156112c9576008546112c2908963ffffffff61109b16565b915061133e565b61130a8860046112e087600163ffffffff61057816565b815481106112ea57fe5b90600052602060002090600202016001015461109b90919063ffffffff16565b9150600461131f85600163ffffffff61057816565b8154811061132957fe5b90600052602060002090600202016001015497505b825461136090611354848a63ffffffff6114b216565b9063ffffffff6114dd16565b90506113728c8263ffffffff61057816565b9b505b60019093019261125b565b60019c5097995089975b505050505050505050509193909250565b6004546000190190565b600354600090600160a060020a031633146113bf57600080fd5b600954610100900460ff16156113d457600080fd5b6001546113e7908363ffffffff61057816565b600155600160a060020a038316600090815260208190526040902054611413908363ffffffff61057816565b600160a060020a03841660008181526020818152604091829020939093558051858152905191927f0f6798a560793a54c3bcfe86a93cde1e73087d944c0ea20544137d412139688592918290030190a2604080518381529051600160a060020a038516916000917fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef9181900360200190a350600192915050565b60c890565b6000808315156114c5576000915061058b565b508282028284828115156114d557fe5b041461058757fe5b60008082848115156114eb57fe5b049493505050505600a165627a7a7230582090c3f05a4682e39c7444242088e625bddabb75044e92f3bca686bc4fe3b50d3f0029
Deployed Bytecode Sourcemap
19458:1015:0:-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;11105:1;11093:9;:13;11089:146;;;11128:30;;;11148:9;11128:30;;;;11136:10;;11128:30;;;;;;;;;;11192:16;;:31;;11213:9;11192:31;:20;:31;:::i;:::-;11173:16;:50;11089:146;19458:1015;8495:35;;8:9:-1;5:2;;;30:1;27;20:12;5:2;8495:35:0;;;;;;;;;;;;;;;;;;;;;;19527:38;;8:9:-1;5:2;;;30:1;27;20:12;5:2;19527:38:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8:100:-1;33:3;30:1;27:10;8:100;;;90:11;;;84:18;71:11;;;64:39;52:2;45:10;8:100;;;12:14;19527:38:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;18326:144;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;18326:144:0;-1:-1:-1;;;;;18326:144:0;;;;;;;11447:207;;8:9:-1;5:2;;;30:1;27;20:12;5:2;11447:207:0;;;;3077:85;;8:9:-1;5:2;;;30:1;27;20:12;5:2;3077:85:0;;;;;;;;;;;;;;;;;;;;18152:166;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;18152:166:0;-1:-1:-1;;;;;18152:166:0;;;;;;;;;;;;19616:35;;8:9:-1;5:2;;;30:1;27;20:12;5:2;19616:35:0;;;;;;;;;;;;;;;;;;;;;;;17190:18;;8:9:-1;5:2;;;30:1;27;20:12;5:2;17190:18:0;;;;10203:90;;8:9:-1;5:2;;;30:1;27;20:12;5:2;10203:90:0;;;;19319:130;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;19319:130:0;-1:-1:-1;;;;;19319:130:0;;;;;;;16410:50;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;16410:50:0;-1:-1:-1;;;;;16410:50:0;;;;;9587:26;;8:9:-1;5:2;;;30:1;27;20:12;5:2;9587:26:0;;;;16260:56;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;16260:56:0;-1:-1:-1;;;;;16260:56:0;;;;;18667:187;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;18667:187:0;-1:-1:-1;;;;;18667:187:0;;;;;;;3920:109;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;3920:109:0;-1:-1:-1;;;;;3920:109:0;;;;;9248:139;;8:9:-1;5:2;;;30:1;27;20:12;5:2;9248:139:0;;;;10028:88;;8:9:-1;5:2;;;30:1;27;20:12;5:2;10028:88:0;;;;1086:20;;8:9:-1;5:2;;;30:1;27;20:12;5:2;1086:20:0;;;;;;;;-1:-1:-1;;;;;1086:20:0;;;;;;;;;;;;;;19572:37;;8:9:-1;5:2;;;30:1;27;20:12;5:2;19572:37:0;;;;18008:136;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;18008:136:0;-1:-1:-1;;;;;18008:136:0;;;;;;;16108:33;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;16108:33:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;17908:92;;8:9:-1;5:2;;;30:1;27;20:12;5:2;17908:92:0;;;;18478:177;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;18478:177:0;-1:-1:-1;;;;;18478:177:0;;;;;;;6315:128;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;6315:128:0;-1:-1:-1;;;;;6315:128:0;;;;;;;;;;16516:31;;8:9:-1;5:2;;;30:1;27;20:12;5:2;16516:31:0;;;;16471:38;;8:9:-1;5:2;;;30:1;27;20:12;5:2;16471:38:0;;;;1706:173;;8:9:-1;5:2;;;30:1;27;20:12;5:2;-1:-1;1706:173:0;-1:-1:-1;;;;;1706:173:0;;;;;727:133;785:7;813:5;;;832:6;;;;825:14;;;;853:1;846:8;;727:133;;;;;;:::o;8495:35::-;;;;;;;;;:::o;19527:38::-;;;;;;;;;;;;;;;;;;;:::o;18326:144::-;9763:6;;18407:4;;9763:6;;9762:7;9754:16;;;;;;18431:31;18445:8;18455:6;18431:13;:31::i;:::-;18424:38;18326:144;-1:-1:-1;;;18326:144:0:o;11447:207::-;1519:5;;-1:-1:-1;;;;;1519:5:0;1505:10;:19;1497:28;;;;;;11510:5;;11525:23;;11510:39;;-1:-1:-1;;;;;11510:5:0;;;;:39;;;;;11525:23;11510:5;:39;:5;:39;11525:23;11510:5;:39;;;;;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;-1:-1;11584:23:0;;11565:43;;;;;;;;;;;;;;;;11645:1;11619:23;:27;11447:207::o;3077:85::-;3144:12;;3077:85;:::o;18152:166::-;9763:6;;18248:4;;9763:6;;9762:7;9754:16;;;;;;18272:38;18291:5;18298:3;18303:6;18272:18;:38::i;:::-;18265:45;18152:166;-1:-1:-1;;;;18152:166:0:o;19616:35::-;19649:2;19616:35;:::o;17190:18::-;;;;:::o;10203:90::-;1519:5;;-1:-1:-1;;;;;1519:5:0;1505:10;:19;1497:28;;;;;;9923:6;;;;9915:15;;;;;;;;10257:6;:14;;-1:-1:-1;;10257:14:0;;;10278:9;;;;10266:5;;10278:9;10203:90::o;19319:130::-;9763:6;;19393:4;;9763:6;;9762:7;9754:16;;;;;;19417:24;19428:3;19433:7;19417:10;:24::i;16410:50::-;;;;;;;;;;;;;:::o;9587:26::-;;;;;;:::o;16260:56::-;;;;;;;;;;;;;:::o;18667:187::-;9763:6;;18764:12;;9763:6;;9762:7;9754:16;;;;;;18796:50;18819:8;18829:16;18796:22;:50::i;3920:109::-;-1:-1:-1;;;;;4007:16:0;3976:15;4007:16;;;;;;;;;;;;3920:109::o;9248:139::-;1519:5;;9307:4;;-1:-1:-1;;;;;1519:5:0;1505:10;:19;1497:28;;;;;;8574:15;;;;;;;8573:16;8565:25;;;;;;9320:15;:22;;-1:-1:-1;;9320:22:0;;;;;9349:14;;;;9320:22;;9349:14;-1:-1:-1;9377:4:0;9248:139;:::o;10028:88::-;1519:5;;-1:-1:-1;;;;;1519:5:0;1505:10;:19;1497:28;;;;;;9763:6;;;;9762:7;9754:16;;;;;;10083:6;:13;;-1:-1:-1;;10083:13:0;10092:4;10083:13;;;10103:7;;;;10083:6;;10103:7;10028:88::o;1086:20::-;;;-1:-1:-1;;;;;1086:20:0;;:::o;19572:37::-;;;;;;;;;;;;;;;;;;;:::o;18008:136::-;9763:6;;18085:4;;9763:6;;9762:7;9754:16;;;;;;18109:27;18124:3;18129:6;18109:14;:27::i;16108:33::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;16108:33:0;:::o;17908:92::-;9763:6;;;;9762:7;9754:16;;;;;;17968:24;:22;:24::i;:::-;17908:92::o;18478:177::-;9763:6;;18570:12;;9763:6;;9762:7;9754:16;;;;;;18602:45;18625:8;18635:11;18602:22;:45::i;6315:128::-;-1:-1:-1;;;;;6412:15:0;;;6389:7;6412:15;;;:7;:15;;;;;;;;:25;;;;;;;;;;;;;6315:128::o;16516:31::-;;;;:::o;16471:38::-;;;;:::o;1706:173::-;1519:5;;-1:-1:-1;;;;;1519:5:0;1505:10;:19;1497:28;;;;;;-1:-1:-1;;;;;1783:22:0;;;;1775:31;;;;;;1834:5;;1813:37;;-1:-1:-1;;;;;1813:37:0;;;;1834:5;;1813:37;;1834:5;;1813:37;1857:5;:16;;-1:-1:-1;;1857:16:0;-1:-1:-1;;;;;1857:16:0;;;;;;;;;;1706:173::o;5801:187::-;5889:10;5868:4;5881:19;;;:7;:19;;;;;;;;-1:-1:-1;;;;;5881:29:0;;;;;;;;;;;:38;;;5926;;;;;;;5868:4;;5881:29;;5889:10;;5926:38;;;;;;;;-1:-1:-1;5978:4:0;5801:187;;;;:::o;11995:214::-;12077:4;12094:21;12109:5;12094:14;:21::i;:::-;12126:19;12141:3;12126:14;:19::i;:::-;12163:38;12182:5;12189:3;12194:6;12163:18;:38::i;17582:196::-;1519:5;;17660:4;;-1:-1:-1;;;;;1519:5:0;1505:10;:19;1497:28;;;;;;8574:15;;;;;;;8573:16;8565:25;;;;;;17714:3;;17685:12;;:25;;17702:7;17685:25;:16;:25;:::i;:::-;:32;;17677:41;;;;;;17746:24;17757:3;17762:7;17746:10;:24::i;7647:407::-;7767:10;7730:4;7759:19;;;:7;:19;;;;;;;;-1:-1:-1;;;;;7759:29:0;;;;;;;;;;7799:27;;;7795:168;;;7845:10;7869:1;7837:19;;;:7;:19;;;;;;;;-1:-1:-1;;;;;7837:29:0;;;;;;;;;:33;7795:168;;;7925:30;:8;7938:16;7925:30;:12;:30;:::i;:::-;7901:10;7893:19;;;;:7;:19;;;;;;;;-1:-1:-1;;;;;7893:29:0;;;;;;;;;:62;7795:168;7978:10;8000:19;;;;:7;:19;;;;;;;;-1:-1:-1;;;;;7969:61:0;;8000:29;;;;;;;;;;;7969:61;;;;;;;;;7978:10;7969:61;;;;;;;;;;;-1:-1:-1;8044:4:0;;7647:407;-1:-1:-1;;;7647:407:0:o;11728:189::-;11791:4;11808:26;11823:10;11808:14;:26::i;:::-;11845:19;11860:3;11845:14;:19::i;:::-;11882:27;11897:3;11902:6;11882:14;:27::i;11306:80::-;11352:26;11367:10;11352:14;:26::i;6912:261::-;7043:10;6990:4;7035:19;;;:7;:19;;;;;;;;-1:-1:-1;;;;;7035:29:0;;;;;;;;;;:46;;7069:11;7035:46;:33;:46;:::i;:::-;7011:10;7003:19;;;;:7;:19;;;;;;;;-1:-1:-1;;;;;7003:29:0;;;;;;;;;;;;:78;;;7088:61;;;;;;7003:29;;7088:61;;;;;;;;;;;-1:-1:-1;7163:4:0;6912:261;;;;:::o;12265:966::-;12323:20;12345:17;12364:32;12526:8;12400:26;12422:3;12400:21;:26::i;:::-;12322:104;;;;;;12442:15;12441:16;12437:42;;;12472:7;;12437:42;12495:14;;12491:412;;12537:19;;-1:-1:-1;;;;;12537:8:0;;;:19;;;;;12546:9;;12537:19;;;;12546:9;12537:8;:19;;;;;;;12526:30;;12575:3;12571:321;;;12604:27;;;;;;;;-1:-1:-1;;;;;12604:27:0;;;;;;;;;;;;;12571:321;;;12762:31;;;;;;;;-1:-1:-1;;;;;12762:31:0;;;;;;;;;;;;;12838:23;;:38;;12866:9;12838:38;:27;:38;:::i;:::-;12812:23;:64;12571:321;-1:-1:-1;;;;;12915:26:0;;;;;;:21;:26;;;;;:53;;;13011:20;:18;:20::i;:::-;12983:24;:48;12979:245;;;13071:16;;-1:-1:-1;;;;;13048:20:0;;;;;;:15;:20;;;;;:39;12979:245;;;13152:11;13164:31;:24;13193:1;13164:31;:28;:31;:::i;:::-;13152:44;;;;;;;;;;;;;;;;:60;:44;;;;;:60;;;;;-1:-1:-1;;;;;13129:20:0;;;;:15;:20;;;;;;;:83;12979:245;12265:966;;;;;:::o;4717:449::-;4799:4;-1:-1:-1;;;;;4820:17:0;;;;4812:26;;;;;;-1:-1:-1;;;;;4863:15:0;;:8;:15;;;;;;;;;;;4853:25;;;4845:34;;;;;;-1:-1:-1;;;;;4904:14:0;;;;;;:7;:14;;;;;;;;4919:10;4904:26;;;;;;;;4894:36;;;4886:45;;;;;;-1:-1:-1;;;;;4958:15:0;;:8;:15;;;;;;;;;;;:27;;4978:6;4958:27;:19;:27;:::i;:::-;-1:-1:-1;;;;;4940:15:0;;;:8;:15;;;;;;;;;;;:45;;;;5008:13;;;;;;;:25;;5026:6;5008:25;:17;:25;:::i;:::-;-1:-1:-1;;;;;4992:13:0;;;:8;:13;;;;;;;;;;;:41;;;;5069:14;;;;;:7;:14;;;;;5084:10;5069:26;;;;;;;:38;;5100:6;5069:38;:30;:38;:::i;:::-;-1:-1:-1;;;;;5040:14:0;;;;;;;:7;:14;;;;;;;;5055:10;5040:26;;;;;;;;:67;;;;5114:28;;;;;;;;;;;5040:14;;5114:28;;;;;;;;;;;-1:-1:-1;5156:4:0;4717:449;;;;;:::o;16704:418::-;1519:5;;16782:4;;;;-1:-1:-1;;;;;1519:5:0;1505:10;:19;1497:28;;;;;;8574:15;;;;;;;8573:16;8565:25;;;;;;16799:19;16814:3;16799:14;:19::i;:::-;16850:24;16861:3;16866:7;16850:10;:24::i;:::-;16904:113;;;;;;;;;16945:12;;;16904:113;;16989:16;;16904:113;;;;;;16887:11;27:10:-1;;23:18;;;45:23;;-1:-1;16887:131:0;;;;;;;;;;;;;;;;;;;16839:35;-1:-1:-1;17036:49:0;17053:13;:11;:13::i;:::-;17068:16;;17036:49;;;;;;;;;;;;;;;;;;;;;;17111:3;16704:418;-1:-1:-1;;;16704:418:0:o;608:113::-;666:7;689:6;;;;682:14;;;;-1:-1:-1;710:5:0;;;608:113::o;3323:388::-;3386:4;-1:-1:-1;;;;;3407:17:0;;;;3399:26;;;;;;3459:10;3450:8;:20;;;;;;;;;;;3440:30;;;3432:39;;;;;;3576:10;3567:8;:20;;;;;;;;;;;:32;;3592:6;3567:32;:24;:32;:::i;:::-;3553:10;3544:8;:20;;;;;;;;;;;:55;;;;-1:-1:-1;;;;;3622:13:0;;;;;;:25;;3640:6;3622:25;:17;:25;:::i;:::-;-1:-1:-1;;;;;3606:13:0;;:8;:13;;;;;;;;;;;;:41;;;;3654:33;;;;;;;3606:13;;3663:10;;3654:33;;;;;;;;;;-1:-1:-1;3701:4:0;3323:388;;;;:::o;13403:2349::-;13481:20;13512:17;13540:32;13591:23;13648:30;13781:34;14107:22;14511:12;14538:15;14611:25;14855:29;15007:32;15533:16;13617:20;:18;:20::i;:::-;-1:-1:-1;;;;;13681:27:0;;;;;;:21;:27;;;;;;13591:46;;-1:-1:-1;13681:27:0;-1:-1:-1;13726:41:0;;;;13719:49;;;;-1:-1:-1;;;;;13818:21:0;;;;;;:15;:21;;;;;;13859:16;;13818:21;;-1:-1:-1;13859:46:0;-1:-1:-1;13859:46:0;13852:54;;;;14012:26;13992:16;;:46;13988:106;;;14061:5;;-1:-1:-1;14061:5:0;;-1:-1:-1;14071:22:0;;-1:-1:-1;14071:22:0;;14053:41;;13988:106;-1:-1:-1;;;;;14132:14:0;;:8;:14;;;;;;;;;;;;-1:-1:-1;14232:19:0;;14228:71;;;14274:4;;-1:-1:-1;14280:1:0;;-1:-1:-1;14283:15:0;;-1:-1:-1;14283:15:0;;14266:33;;14228:71;14526:1;14511:16;;14556:37;:35;:37::i;:::-;14538:55;;14639:22;14611:50;;14606:1078;14663:36;;;14606:1078;;14741:6;;;;:16;-1:-1:-1;14737:44:0;;;14776:5;;14737:44;14823:17;14798:42;;14887:11;14899:17;14887:30;;;;;;;;;;;;;;;;;;;;14855:62;;14943:8;:20;;;14938:1;:25;14934:56;;;14982:8;;14934:56;15123:15;15102:17;:36;15098:419;;;15186:16;;:48;;15207:26;15186:48;:20;:48;:::i;:::-;15159:75;;15098:419;;;15315:85;15373:26;15315:11;15327:24;:17;15349:1;15327:24;:21;:24;:::i;:::-;15315:37;;;;;;;;;;;;;;;;;;:53;;;:57;;:85;;;;:::i;:::-;15288:112;-1:-1:-1;15448:11:0;15460:24;:17;15482:1;15460:24;:21;:24;:::i;:::-;15448:37;;;;;;;;;;;;;;;;;;:53;;;15419:82;;15098:419;15601:20;;15552:70;;:44;:24;15581:14;15552:44;:28;:44;:::i;:::-;:48;:70;:48;:70;:::i;:::-;15533:89;-1:-1:-1;15649:23:0;:9;15533:89;15649:23;:13;:23;:::i;:::-;15637:35;;14606:1078;14701:19;;;;;14606:1078;;;15704:4;;-1:-1:-1;15721:22:0;;-1:-1:-1;15721:22:0;;13403:2349;;;;;;;;;;;;;;;;:::o;15760:109::-;15839:11;:18;-1:-1:-1;;15839:22:0;15760:109;:::o;8848:280::-;1519:5;;8926:4;;-1:-1:-1;;;;;1519:5:0;1505:10;:19;1497:28;;;;;;8574:15;;;;;;;8573:16;8565:25;;;;;;8954:12;;:25;;8971:7;8954:25;:16;:25;:::i;:::-;8939:12;:40;-1:-1:-1;;;;;9002:13:0;;:8;:13;;;;;;;;;;;:26;;9020:7;9002:26;:17;:26;:::i;:::-;-1:-1:-1;;;;;8986:13:0;;:8;:13;;;;;;;;;;;;:42;;;;9035:18;;;;;;;8986:13;;9035:18;;;;;;;;;9060:34;;;;;;;;-1:-1:-1;;;;;9060:34:0;;;9077:1;;9060:34;;;;;;;;;-1:-1:-1;9118:4:0;8848:280;;;;:::o;15939:108::-;16036:3;15939:108;:::o;146:180::-;204:7;;224:6;;220:37;;;248:1;241:8;;;;220:37;-1:-1:-1;275:5:0;;;279:1;275;:5;294;;;;;;;;:10;287:18;;;332:270;390:7;481:9;497:1;493;:5;;;;;;;;;332:270;-1:-1:-1;;;;332:270:0:o
Swarm Source
bzzr://90c3f05a4682e39c7444242088e625bddabb75044e92f3bca686bc4fe3b50d3f
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.