Feature Tip: Add private address tag to any address under My Name Tag !
Source Code
More Info
Private Name Tags
ContractCreator
TokenTracker
Latest 25 from a total of 679 transactions
| Transaction Hash |
Method
|
Block
|
From
|
|
To
|
||||
|---|---|---|---|---|---|---|---|---|---|
| Sell City For Et... | 13983574 | 1538 days ago | IN | 0 ETH | 0.00795353 | ||||
| Resolve Sell Cit... | 13296560 | 1646 days ago | IN | 0.1 ETH | 0.00758888 | ||||
| Resolve Sell Cit... | 13249058 | 1653 days ago | IN | 0.075 ETH | 0.00643704 | ||||
| Resolve Sell Cit... | 13236760 | 1655 days ago | IN | 0.1 ETH | 0.00487651 | ||||
| Buy City | 13236693 | 1655 days ago | IN | 0.05 ETH | 0.01213623 | ||||
| Approve | 13234130 | 1656 days ago | IN | 0 ETH | 0.00501346 | ||||
| Buy City | 13234047 | 1656 days ago | IN | 0.1 ETH | 0.00792017 | ||||
| Buy City | 13234026 | 1656 days ago | IN | 0.06 ETH | 0.00873111 | ||||
| Buy City | 13234013 | 1656 days ago | IN | 0.04 ETH | 0.01427382 | ||||
| Resolve Sell Cit... | 13233986 | 1656 days ago | IN | 0.125 ETH | 0.00748067 | ||||
| Resolve Sell Cit... | 13233971 | 1656 days ago | IN | 0.15 ETH | 0.01520203 | ||||
| Resolve Sell Cit... | 13233959 | 1656 days ago | IN | 0.1 ETH | 0.00719727 | ||||
| Resolve Sell Cit... | 13163444 | 1667 days ago | IN | 0.049 ETH | 0.01406955 | ||||
| Buy City | 13163424 | 1667 days ago | IN | 1 ETH | 0.01530914 | ||||
| Sell City For Et... | 13157257 | 1668 days ago | IN | 0 ETH | 0.00571904 | ||||
| Buy City | 13157250 | 1668 days ago | IN | 0.12 ETH | 0.01104029 | ||||
| Sell City For Et... | 13157177 | 1668 days ago | IN | 0 ETH | 0.00470661 | ||||
| Buy City | 13157151 | 1668 days ago | IN | 0.09 ETH | 0.01411782 | ||||
| Buy City | 13113329 | 1674 days ago | IN | 0.11 ETH | 0.00387648 | ||||
| Buy City | 13113329 | 1674 days ago | IN | 0.15 ETH | 0.00510553 | ||||
| Buy City | 13111171 | 1675 days ago | IN | 0.03 ETH | 0.01049315 | ||||
| Resolve Sell Cit... | 13110999 | 1675 days ago | IN | 0.05 ETH | 0.00442353 | ||||
| Buy City | 13110966 | 1675 days ago | IN | 0.02 ETH | 0.00570693 | ||||
| Buy City | 13110944 | 1675 days ago | IN | 0.04 ETH | 0.00597507 | ||||
| Buy City | 13110925 | 1675 days ago | IN | 0.02 ETH | 0.00750564 |
Latest 25 internal transactions (View All)
Advanced mode:
| Parent Transaction Hash | Method | Block |
From
|
|
To
|
||
|---|---|---|---|---|---|---|---|
| - | 13296560 | 1646 days ago | 0.097 ETH | ||||
| - | 13249058 | 1653 days ago | 0.07275 ETH | ||||
| - | 13236760 | 1655 days ago | 0.097 ETH | ||||
| - | 13233986 | 1656 days ago | 0.12125 ETH | ||||
| - | 13233971 | 1656 days ago | 0.1455 ETH | ||||
| - | 13233959 | 1656 days ago | 0.097 ETH | ||||
| - | 13163444 | 1667 days ago | 0.04753 ETH | ||||
| - | 13110999 | 1675 days ago | 0.0485 ETH | ||||
| - | 13110620 | 1675 days ago | 0.0873 ETH | ||||
| - | 13110419 | 1675 days ago | 0.097 ETH | ||||
| - | 7031717 | 2637 days ago | 0.001 ETH | ||||
| - | 7031715 | 2637 days ago | 0.002 ETH | ||||
| - | 7031714 | 2637 days ago | 0.004 ETH | ||||
| Transfer | 6672839 | 2697 days ago | 0.00291 ETH | ||||
| Transfer | 6621891 | 2706 days ago | 0.01746 ETH | ||||
| Transfer | 6043118 | 2802 days ago | 0.00097 ETH | ||||
| Transfer | 5976136 | 2813 days ago | 0.001 ETH | ||||
| Transfer | 5976081 | 2813 days ago | 0.0097 ETH | ||||
| Transfer | 5790695 | 2845 days ago | 0.008 ETH | ||||
| Transfer | 5790527 | 2845 days ago | 0.00776 ETH | ||||
| Transfer | 5693265 | 2862 days ago | 0.50099666 ETH | ||||
| Transfer | 5693265 | 2862 days ago | 0.50099666 ETH | ||||
| Transfer | 5693265 | 2862 days ago | 0.50099666 ETH | ||||
| Transfer | 5686091 | 2863 days ago | 1 ETH | ||||
| Transfer | 5600167 | 2878 days ago | 0.01 ETH |
Loading...
Loading
Loading...
Loading
Cross-Chain Transactions
Loading...
Loading
Contract Name:
CityMayor
Compiler Version
v0.4.20+commit.3155dd80
Optimization Enabled:
Yes with 200 runs
Other Settings:
default evmVersion
Contract Source Code (Solidity)
/**
*Submitted for verification at Etherscan.io on 2018-03-05
*/
pragma solidity ^0.4.19;
library SafeMath {
/**
* @dev Multiplies two numbers, throws on overflow.
*/
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;
}
/**
* @dev Integer division of two numbers, truncating the quotient.
*/
// we don't need "div"
/* 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;
}
*/
/**
* @dev Substracts two numbers, throws on overflow (i.e. if subtrahend is greater than minuend).
*/
function sub(uint256 a, uint256 b) internal pure returns (uint256) {
assert(b <= a);
return a - b;
}
/**
* @dev Adds two numbers, throws on overflow.
*/
function add(uint256 a, uint256 b) internal pure returns (uint256) {
uint256 c = a + b;
assert(c >= a);
return c;
}
}
contract CityMayor {
using SafeMath for uint256;
//
// ERC-20
//
string public name = "CityCoin";
string public symbol = "CITY";
uint8 public decimals = 0;
mapping(address => uint256) balances;
event Approval(address indexed owner, address indexed spender, uint256 value);
event Transfer(address indexed from, address indexed to, uint256 value);
/**
* @dev total number of tokens in existence
*/
uint256 totalSupply_;
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];
}
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;
}
//
// Game Meta values
//
address public unitedNations; // the UN organisation
uint16 public MAX_CITIES = 5000; // maximum amount of cities in our world
uint256 public UNITED_NATIONS_FUND = 5000000; // initial funding for the UN
uint256 public ECONOMY_BOOST = 5000; // minted CITYs when a new city is being bought
uint256 public BUY_CITY_FEE = 3; // UN fee (% of ether) to buy a city from someon / 100e
uint256 public ECONOMY_BOOST_TRADE = 100; // _immutable_ gift (in CITY) from the UN when a city is traded (shared among the cities of the relevant country)
uint256 public MONUMENT_UN_FEE = 3; // UN fee (CITY) to buy a monument
uint256 public MONUMENT_CITY_FEE = 3; // additional fee (CITY) to buy a monument (shared to the monument's city)
//
// Game structures
//
struct country {
string name;
uint16[] cities;
}
struct city {
string name;
uint256 price;
address owner;
uint16 countryId;
uint256[] monuments;
bool buyable; // set to true when it can be bought
uint256 last_purchase_price;
}
struct monument {
string name;
uint256 price;
address owner;
uint16 cityId;
}
city[] public cities; // cityId -> city
country[] public countries; // countryId -> country
monument[] public monuments; // monumentId -> monument
// total amount of offers (escrowed money)
uint256 public totalOffer;
//
// Game events
//
event NewCity(uint256 cityId, string name, uint256 price, uint16 countryId);
event NewMonument(uint256 monumentId, string name, uint256 price, uint16 cityId);
event CityForSale(uint16 cityId, uint256 price);
event CitySold(uint16 cityId, uint256 price, address previousOwner, address newOwner, uint256 offerId);
event MonumentSold(uint256 monumentId, uint256 price);
//
// Admin stuff
//
// constructor
function CityMayor() public {
unitedNations = msg.sender;
balances[unitedNations] = UNITED_NATIONS_FUND; // initial funding for the united nations
uint256 perFounder = 500000;
balances[address(0xe1811eC49f493afb1F4B42E3Ef4a3B9d62d9A01b)] = perFounder; // david
balances[address(0x1E4F1275bB041586D7Bec44D2E3e4F30e0dA7Ba4)] = perFounder; // simon
balances[address(0xD5d6301dE62D82F461dC29824FC597D38d80c424)] = perFounder; // eric
// total supply updated
totalSupply_ = UNITED_NATIONS_FUND + 3 * perFounder;
}
// this function is used to let admins give cities back to owners of previous contracts
function AdminBuyForSomeone(uint16 _cityId, address _owner) public {
// admin only
require(msg.sender == unitedNations);
// fetch
city memory fetchedCity = cities[_cityId];
// requires
require(fetchedCity.buyable == true);
require(fetchedCity.owner == 0x0);
// transfer ownership
cities[_cityId].owner = _owner;
// update city metadata
cities[_cityId].buyable = false;
cities[_cityId].last_purchase_price = fetchedCity.price;
// increase economy of region according to ECONOMY_BOOST
uint16[] memory fetchedCities = countries[fetchedCity.countryId].cities;
uint256 perCityBoost = ECONOMY_BOOST / fetchedCities.length;
for(uint16 ii = 0; ii < fetchedCities.length; ii++){
address _to = cities[fetchedCities[ii]].owner;
if(_to != 0x0) { // MINT only if address exists
balances[_to] = balances[_to].add(perCityBoost);
totalSupply_ += perCityBoost; // update the total supply
}
}
// event
CitySold(_cityId, fetchedCity.price, 0x0, _owner, 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff);
}
// this function allows to make an offer from someone else
function makeOfferForCityForSomeone(uint16 _cityId, uint256 _price, address from) public payable {
// only for admins
require(msg.sender == unitedNations);
// requires
require(cities[_cityId].owner != 0x0);
require(_price > 0);
require(msg.value >= _price);
require(cities[_cityId].owner != from);
// add the offer
uint256 lastId = offers.push(offer(_cityId, _price, from)) - 1;
// increment totalOffer
totalOffer = totalOffer.add(_price);
// event
OfferForCity(lastId, _cityId, _price, from, cities[_cityId].owner);
}
// withdrawing funds
function adminWithdraw(uint256 _amount) public {
require(msg.sender == 0xD5d6301dE62D82F461dC29824FC597D38d80c424 || msg.sender == 0x1E4F1275bB041586D7Bec44D2E3e4F30e0dA7Ba4 || msg.sender == 0xe1811eC49f493afb1F4B42E3Ef4a3B9d62d9A01b || msg.sender == unitedNations);
// do not touch the escrowed money
uint256 totalAvailable = this.balance.sub(totalOffer);
if(_amount > totalAvailable) {
_amount = totalAvailable;
}
// divide the amount for founders
uint256 perFounder = _amount / 3;
address(0xD5d6301dE62D82F461dC29824FC597D38d80c424).transfer(perFounder); // eric
address(0x1E4F1275bB041586D7Bec44D2E3e4F30e0dA7Ba4).transfer(perFounder); // simon
address(0xe1811eC49f493afb1F4B42E3Ef4a3B9d62d9A01b).transfer(perFounder); // david
}
//
// Admin adding stuff
//
// we need to add a country before we can add a city
function adminAddCountry(string _name) public returns (uint256) {
// requires
require(msg.sender == unitedNations);
// add country
uint256 lastId = countries.push(country(_name, new uint16[](0))) - 1;
//
return lastId;
}
// adding a city will mint ECONOMY_BOOST citycoins (country must exist)
function adminAddCity(string _name, uint256 _price, uint16 _countryId) public returns (uint256) {
// requires
require(msg.sender == unitedNations);
require(cities.length < MAX_CITIES);
// add city
uint256 lastId = cities.push(city(_name, _price, 0, _countryId, new uint256[](0), true, 0)) - 1;
countries[_countryId].cities.push(uint16(lastId));
// event
NewCity(lastId, _name, _price, _countryId);
//
return lastId;
}
// adding a monument (city must exist)
function adminAddMonument(string _name, uint256 _price, uint16 _cityId) public returns (uint256) {
// requires
require(msg.sender == unitedNations);
require(_price > 0);
// add monument
uint256 lastId = monuments.push(monument(_name, _price, 0, _cityId)) - 1;
cities[_cityId].monuments.push(lastId);
// event
NewMonument(lastId, _name, _price, _cityId);
//
return lastId;
}
// Edit a city if it hasn't been bought yet
function adminEditCity(uint16 _cityId, string _name, uint256 _price, address _owner) public {
// requires
require(msg.sender == unitedNations);
require(cities[_cityId].owner == 0x0);
//
cities[_cityId].name = _name;
cities[_cityId].price = _price;
cities[_cityId].owner = _owner;
}
//
// Buy and manage a city
//
function buyCity(uint16 _cityId) public payable {
// fetch
city memory fetchedCity = cities[_cityId];
// requires
require(fetchedCity.buyable == true);
require(fetchedCity.owner == 0x0);
require(msg.value >= fetchedCity.price);
// transfer ownership
cities[_cityId].owner = msg.sender;
// update city metadata
cities[_cityId].buyable = false;
cities[_cityId].last_purchase_price = fetchedCity.price;
// increase economy of region according to ECONOMY_BOOST
uint16[] memory fetchedCities = countries[fetchedCity.countryId].cities;
uint256 perCityBoost = ECONOMY_BOOST / fetchedCities.length;
for(uint16 ii = 0; ii < fetchedCities.length; ii++){
address _to = cities[fetchedCities[ii]].owner;
if(_to != 0x0) { // MINT only if address exists
balances[_to] = balances[_to].add(perCityBoost);
totalSupply_ += perCityBoost; // update the total supply
}
}
// event
CitySold(_cityId, fetchedCity.price, 0x0, msg.sender, 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff);
}
//
// Economy boost:
// this is called by functions below that will "buy a city from someone else"
// it will draw ECONOMY_BOOST_TRADE CITYs from the UN funds and split them in the relevant country
//
function economyBoost(uint16 _countryId, uint16 _excludeCityId) private {
if(balances[unitedNations] < ECONOMY_BOOST_TRADE) {
return; // unless the UN has no more funds
}
uint16[] memory fetchedCities = countries[_countryId].cities;
if(fetchedCities.length == 1) {
return;
}
uint256 perCityBoost = ECONOMY_BOOST_TRADE / (fetchedCities.length - 1); // excluding the bought city
for(uint16 ii = 0; ii < fetchedCities.length; ii++){
address _to = cities[fetchedCities[ii]].owner;
if(_to != 0x0 && fetchedCities[ii] != _excludeCityId) { // only if address exists AND not the current city
balances[_to] = balances[_to].add(perCityBoost);
balances[unitedNations] -= perCityBoost;
}
}
}
//
// Sell a city
//
// step 1: owner sets buyable = true
function sellCityForEther(uint16 _cityId, uint256 _price) public {
// requires
require(cities[_cityId].owner == msg.sender);
// for sale
cities[_cityId].price = _price;
cities[_cityId].buyable = true;
// event
CityForSale(_cityId, _price);
}
event CityNotForSale(uint16 cityId);
// step 2: owner can always cancel
function cancelSellCityForEther(uint16 _cityId) public {
// requires
require(cities[_cityId].owner == msg.sender);
//
cities[_cityId].buyable = false;
// event
CityNotForSale(_cityId);
}
// step 3: someone else accepts the offer
function resolveSellCityForEther(uint16 _cityId) public payable {
// fetch
city memory fetchedCity = cities[_cityId];
// requires
require(fetchedCity.buyable == true);
require(msg.value >= fetchedCity.price);
require(fetchedCity.owner != msg.sender);
// calculate the fee
uint256 fee = BUY_CITY_FEE.mul(fetchedCity.price) / 100;
// pay the price
address previousOwner = fetchedCity.owner;
previousOwner.transfer(fetchedCity.price.sub(fee));
// transfer of ownership
cities[_cityId].owner = msg.sender;
// update metadata
cities[_cityId].buyable = false;
cities[_cityId].last_purchase_price = fetchedCity.price;
// increase economy of region
economyBoost(fetchedCity.countryId, _cityId);
// event
CitySold(_cityId, fetchedCity.price, previousOwner, msg.sender, 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff);
}
//
// Make an offer for a city
//
struct offer {
uint16 cityId;
uint256 price;
address from;
}
offer[] public offers;
event OfferForCity(uint256 offerId, uint16 cityId, uint256 price, address offererAddress, address owner);
event CancelOfferForCity(uint256 offerId);
// 1. we make an offer for some cityId that we don't own yet (we deposit money in escrow)
function makeOfferForCity(uint16 _cityId, uint256 _price) public payable {
// requires
require(cities[_cityId].owner != 0x0);
require(_price > 0);
require(msg.value >= _price);
require(cities[_cityId].owner != msg.sender);
// add the offer
uint256 lastId = offers.push(offer(_cityId, _price, msg.sender)) - 1;
// increment totalOffer
totalOffer = totalOffer.add(_price);
// event
OfferForCity(lastId, _cityId, _price, msg.sender, cities[_cityId].owner);
}
// 2. we cancel it (getting back our money)
function cancelOfferForCity(uint256 _offerId) public {
// fetch
offer memory offerFetched = offers[_offerId];
// requires
require(offerFetched.from == msg.sender);
// refund
msg.sender.transfer(offerFetched.price);
// decrement totaloffer
totalOffer = totalOffer.sub(offerFetched.price);
// remove offer
offers[_offerId].cityId = 0;
offers[_offerId].price = 0;
offers[_offerId].from = 0x0;
// event
CancelOfferForCity(_offerId);
}
// 3. the city owner can accept the offer
function acceptOfferForCity(uint256 _offerId, uint16 _cityId, uint256 _price) public {
// fetch
city memory fetchedCity = cities[_cityId];
offer memory offerFetched = offers[_offerId];
// requires
require(offerFetched.cityId == _cityId);
require(offerFetched.from != 0x0);
require(offerFetched.from != msg.sender);
require(offerFetched.price == _price);
require(fetchedCity.owner == msg.sender);
// compute the fee
uint256 fee = BUY_CITY_FEE.mul(_price) / 100;
// transfer the escrowed money
uint256 priceSubFee = _price.sub(fee);
cities[_cityId].owner.transfer(priceSubFee);
// decrement tracked amount of escrowed ethers
totalOffer = totalOffer.sub(priceSubFee);
// transfer of ownership
cities[_cityId].owner = offerFetched.from;
// update metadata
cities[_cityId].last_purchase_price = _price;
cities[_cityId].buyable = false; // in case it was also set to be purchasable
// increase economy of region
economyBoost(fetchedCity.countryId, _cityId);
// event
CitySold(_cityId, _price, msg.sender, offerFetched.from, _offerId);
// remove offer
offers[_offerId].cityId = 0;
offers[_offerId].price = 0;
offers[_offerId].from = 0x0;
}
//
// in-game use of CITYs
//
/*
uint256 public MONUMENT_UN_FEE = 3; // UN fee (CITY) to buy a monument
uint256 public MONUMENT_CITY_FEE = 3; // additional fee (CITY) to buy a monument (shared to the monument's city)
*/
// anyone can buy a monument from someone else (with CITYs)
function buyMonument(uint256 _monumentId, uint256 _price) public {
// fetch
monument memory fetchedMonument = monuments[_monumentId];
// requires
require(fetchedMonument.price > 0);
require(fetchedMonument.price == _price);
require(balances[msg.sender] >= _price);
require(fetchedMonument.owner != msg.sender);
// pay first!
balances[msg.sender] = balances[msg.sender].sub(_price);
// compute fee
uint256 UN_fee = MONUMENT_UN_FEE.mul(_price) / 100;
uint256 city_fee = MONUMENT_CITY_FEE.mul(_price) / 100;
// previous owner gets paid
uint256 toBePaid = _price.sub(UN_fee);
toBePaid = toBePaid.sub(city_fee);
balances[fetchedMonument.owner] = balances[fetchedMonument.owner].add(toBePaid);
// UN gets a fee
balances[unitedNations] = balances[unitedNations].add(UN_fee);
// city gets a fee
address cityOwner = cities[fetchedMonument.cityId].owner;
balances[cityOwner] = balances[cityOwner].add(city_fee);
// transfer of ownership
monuments[_monumentId].owner = msg.sender;
// price increase of the monument
monuments[_monumentId].price = monuments[_monumentId].price.mul(2);
// event
MonumentSold(_monumentId, _price);
}
}Contract Security Audit
- No Contract Security Audit Submitted- Submit Audit Here
Contract ABI
API[{"constant":true,"inputs":[],"name":"name","outputs":[{"name":"","type":"string"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"","type":"uint256"}],"name":"countries","outputs":[{"name":"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":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":"","type":"uint256"}],"name":"monuments","outputs":[{"name":"name","type":"string"},{"name":"price","type":"uint256"},{"name":"owner","type":"address"},{"name":"cityId","type":"uint16"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"BUY_CITY_FEE","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"UNITED_NATIONS_FUND","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"ECONOMY_BOOST_TRADE","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":"","type":"bool"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[{"name":"","type":"uint256"}],"name":"cities","outputs":[{"name":"name","type":"string"},{"name":"price","type":"uint256"},{"name":"owner","type":"address"},{"name":"countryId","type":"uint16"},{"name":"buyable","type":"bool"},{"name":"last_purchase_price","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"unitedNations","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","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":"_amount","type":"uint256"}],"name":"adminWithdraw","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"MONUMENT_UN_FEE","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"_monumentId","type":"uint256"},{"name":"_price","type":"uint256"}],"name":"buyMonument","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"_cityId","type":"uint16"}],"name":"resolveSellCityForEther","outputs":[],"payable":true,"stateMutability":"payable","type":"function"},{"constant":true,"inputs":[{"name":"","type":"uint256"}],"name":"offers","outputs":[{"name":"cityId","type":"uint16"},{"name":"price","type":"uint256"},{"name":"from","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":"_cityId","type":"uint16"},{"name":"_price","type":"uint256"}],"name":"sellCityForEther","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"_cityId","type":"uint16"}],"name":"cancelSellCityForEther","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"_cityId","type":"uint16"}],"name":"buyCity","outputs":[],"payable":true,"stateMutability":"payable","type":"function"},{"constant":false,"inputs":[{"name":"_name","type":"string"},{"name":"_price","type":"uint256"},{"name":"_countryId","type":"uint16"}],"name":"adminAddCity","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"MAX_CITIES","outputs":[{"name":"","type":"uint16"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"ECONOMY_BOOST","outputs":[{"name":"","type":"uint256"}],"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":false,"inputs":[{"name":"_offerId","type":"uint256"}],"name":"cancelOfferForCity","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"_name","type":"string"},{"name":"_price","type":"uint256"},{"name":"_cityId","type":"uint16"}],"name":"adminAddMonument","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"totalOffer","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"MONUMENT_CITY_FEE","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"_spender","type":"address"},{"name":"_addedValue","type":"uint256"}],"name":"increaseApproval","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"_name","type":"string"}],"name":"adminAddCountry","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"_offerId","type":"uint256"},{"name":"_cityId","type":"uint16"},{"name":"_price","type":"uint256"}],"name":"acceptOfferForCity","outputs":[],"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":false,"inputs":[{"name":"_cityId","type":"uint16"},{"name":"_owner","type":"address"}],"name":"AdminBuyForSomeone","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"_cityId","type":"uint16"},{"name":"_price","type":"uint256"},{"name":"from","type":"address"}],"name":"makeOfferForCityForSomeone","outputs":[],"payable":true,"stateMutability":"payable","type":"function"},{"constant":false,"inputs":[{"name":"_cityId","type":"uint16"},{"name":"_price","type":"uint256"}],"name":"makeOfferForCity","outputs":[],"payable":true,"stateMutability":"payable","type":"function"},{"constant":false,"inputs":[{"name":"_cityId","type":"uint16"},{"name":"_name","type":"string"},{"name":"_price","type":"uint256"},{"name":"_owner","type":"address"}],"name":"adminEditCity","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"inputs":[],"payable":false,"stateMutability":"nonpayable","type":"constructor"},{"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"},{"anonymous":false,"inputs":[{"indexed":false,"name":"cityId","type":"uint256"},{"indexed":false,"name":"name","type":"string"},{"indexed":false,"name":"price","type":"uint256"},{"indexed":false,"name":"countryId","type":"uint16"}],"name":"NewCity","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"name":"monumentId","type":"uint256"},{"indexed":false,"name":"name","type":"string"},{"indexed":false,"name":"price","type":"uint256"},{"indexed":false,"name":"cityId","type":"uint16"}],"name":"NewMonument","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"name":"cityId","type":"uint16"},{"indexed":false,"name":"price","type":"uint256"}],"name":"CityForSale","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"name":"cityId","type":"uint16"},{"indexed":false,"name":"price","type":"uint256"},{"indexed":false,"name":"previousOwner","type":"address"},{"indexed":false,"name":"newOwner","type":"address"},{"indexed":false,"name":"offerId","type":"uint256"}],"name":"CitySold","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"name":"monumentId","type":"uint256"},{"indexed":false,"name":"price","type":"uint256"}],"name":"MonumentSold","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"name":"cityId","type":"uint16"}],"name":"CityNotForSale","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"name":"offerId","type":"uint256"},{"indexed":false,"name":"cityId","type":"uint16"},{"indexed":false,"name":"price","type":"uint256"},{"indexed":false,"name":"offererAddress","type":"address"},{"indexed":false,"name":"owner","type":"address"}],"name":"OfferForCity","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"name":"offerId","type":"uint256"}],"name":"CancelOfferForCity","type":"event"}]Contract Creation Code
606060405260408051908101604052600881527f43697479436f696e000000000000000000000000000000000000000000000000602082015260009080516200004d929160200190620001c4565b5060408051908101604052600481527f43495459000000000000000000000000000000000000000000000000000000006020820152600190805162000097929160200190620001c4565b506002805460ff191690556006805460a060020a61ffff0219167513880000000000000000000000000000000000000000179055624c4b40600755611388600855600360098190556064600a55600b819055600c553415620000f857600080fd5b60068054600160a060020a03191633600160a060020a039081169190911791829055600754911660009081526003602052604081208290556207a1207f2a63bad538ddfd395ab8dde62aff1acbfa309d3fb83ed3c9561e48c9de00f0188190557fa15da8895dd182a72e987ecbc3bb37499548bcf2a89927ee3bec9d96511d77e581905573d5d6301de62d82f461dc29824fc597d38d80c4249091527f51ab90ea3a05b09d43d4d4be3921347ba395ef247be34b90afb47cc8332a5b00556216e3600160045562000269565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f106200020757805160ff191683800117855562000237565b8280016001018555821562000237579182015b82811115620002375782518255916020019190600101906200021a565b506200024592915062000249565b5090565b6200026691905b8082111562000245576000815560010162000250565b90565b613be180620002796000396000f3006060604052600436106101e25763ffffffff7c010000000000000000000000000000000000000000000000000000000060003504166306fdde0381146101e757806308e9daa514610271578063095ea7b31461030f57806318160ddd1461034557806323b872dd1461036a578063313ce5671461039257806337f83291146103bb5780634a87e08a1461047c5780634c34d7e91461048f5780635a768e4a146104a257806366188463146104b55780636a51b918146104d75780636e2c10a1146105a957806370a08231146105d85780637c5b4a37146105f757806382b57b961461060f578063839acf14146106225780638973e3161461063b5780638a72ea6a1461064a57806395d89b411461069257806396dbad1e146106a55780639e65a03a146106c2578063a0bde945146106dc578063a25fc8dc146106eb578063a2741bdb14610747578063a27c175614610771578063a9059cbb14610784578063ae93e513146107a6578063b2bdc6b3146107bc578063bd1de90014610818578063d02e8f701461082b578063d73dd6231461083e578063db5a277814610860578063dc1c1389146108b1578063dd62ed3e146108d1578063e3b55276146108f6578063e6c89d4a1461091c578063ee5845cc1461093a578063f93e2d311461094c575b600080fd5b34156101f257600080fd5b6101fa6109b6565b60405160208082528190810183818151815260200191508051906020019080838360005b8381101561023657808201518382015260200161021e565b50505050905090810190601f1680156102635780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b341561027c57600080fd5b610287600435610a54565b604051602080825282546002600019610100600184161502019091160490820181905281906040820190849080156103005780601f106102d557610100808354040283529160200191610300565b820191906000526020600020905b8154815290600101906020018083116102e357829003601f168201915b50509250505060405180910390f35b341561031a57600080fd5b610331600160a060020a0360043516602435610a77565b604051901515815260200160405180910390f35b341561035057600080fd5b610358610ae3565b60405190815260200160405180910390f35b341561037557600080fd5b610331600160a060020a0360043581169060243516604435610aea565b341561039d57600080fd5b6103a5610c6c565b60405160ff909116815260200160405180910390f35b34156103c657600080fd5b6103d1600435610c75565b60405160208101849052600160a060020a038316604082015261ffff821660608201526080808252855460026000196101006001841615020190911604908201819052819060a08201908790801561046a5780601f1061043f5761010080835404028352916020019161046a565b820191906000526020600020905b81548152906001019060200180831161044d57829003601f168201915b50509550505050505060405180910390f35b341561048757600080fd5b610358610cba565b341561049a57600080fd5b610358610cc0565b34156104ad57600080fd5b610358610cc6565b34156104c057600080fd5b610331600160a060020a0360043516602435610ccc565b34156104e257600080fd5b6104ed600435610dc8565b60405160208101869052600160a060020a038516604082015261ffff84166060820152821515608082015260a0810182905260c0808252875460026000196101006001841615020190911604908201819052819060e0820190899080156105955780601f1061056a57610100808354040283529160200191610595565b820191906000526020600020905b81548152906001019060200180831161057857829003601f168201915b505097505050505050505060405180910390f35b34156105b457600080fd5b6105bc610e1e565b604051600160a060020a03909116815260200160405180910390f35b34156105e357600080fd5b610358600160a060020a0360043516610e2d565b341561060257600080fd5b61060d600435610e48565b005b341561061a57600080fd5b610358610fc7565b341561062d57600080fd5b61060d600435602435610fcd565b61060d61ffff600435166113da565b341561065557600080fd5b61066060043561173b565b60405161ffff90931683526020830191909152600160a060020a03166040808301919091526060909101905180910390f35b341561069d57600080fd5b6101fa61177a565b34156106b057600080fd5b61060d61ffff600435166024356117e5565b34156106cd57600080fd5b61060d61ffff600435166118cc565b61060d61ffff60043516611982565b34156106f657600080fd5b61035860046024813581810190830135806020601f82018190048102016040519081016040528181529291906020840183838082843750949650508435946020013561ffff169350611dcf92505050565b341561075257600080fd5b61075a61206b565b60405161ffff909116815260200160405180910390f35b341561077c57600080fd5b61035861207c565b341561078f57600080fd5b610331600160a060020a0360043516602435612082565b34156107b157600080fd5b61060d60043561217d565b34156107c757600080fd5b61035860046024813581810190830135806020601f82018190048102016040519081016040528181529291906020840183838082843750949650508435946020013561ffff16935061231992505050565b341561082357600080fd5b6103586124c0565b341561083657600080fd5b6103586124c6565b341561084957600080fd5b610331600160a060020a03600435166024356124cc565b341561086b57600080fd5b61035860046024813581810190830135806020601f8201819004810201604051908101604052818152929190602084018383808284375094965061257095505050505050565b34156108bc57600080fd5b61060d60043561ffff60243516604435612626565b34156108dc57600080fd5b610358600160a060020a0360043581169060243516612aea565b341561090157600080fd5b61060d61ffff60043516600160a060020a0360243516612b15565b61060d61ffff60043516602435600160a060020a0360443516612f6e565b61060d61ffff60043516602435613170565b341561095757600080fd5b61060d6004803561ffff169060446024803590810190830135806020601f820181900481020160405190810160405281815292919060208401838380828437509496505084359460200135600160a060020a0316935061335692505050565b60008054600181600116156101000203166002900480601f016020809104026020016040519081016040528092919081815260200182805460018160011615610100020316600290048015610a4c5780601f10610a2157610100808354040283529160200191610a4c565b820191906000526020600020905b815481529060010190602001808311610a2f57829003601f168201915b505050505081565b600e805482908110610a6257fe5b60009182526020909120600290910201905081565b600160a060020a03338116600081815260056020908152604080832094871680845294909152808220859055909291907f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b9259085905190815260200160405180910390a350600192915050565b6004545b90565b6000600160a060020a0383161515610b0157600080fd5b600160a060020a038416600090815260036020526040902054821115610b2657600080fd5b600160a060020a0380851660009081526005602090815260408083203390941683529290522054821115610b5957600080fd5b600160a060020a038416600090815260036020526040902054610b82908363ffffffff61345916565b600160a060020a038086166000908152600360205260408082209390935590851681522054610bb7908363ffffffff61346b16565b600160a060020a03808516600090815260036020908152604080832094909455878316825260058152838220339093168252919091522054610bff908363ffffffff61345916565b600160a060020a03808616600081815260056020908152604080832033861684529091529081902093909355908516917fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef9085905190815260200160405180910390a35060019392505050565b60025460ff1681565b600f805482908110610c8357fe5b600091825260209091206003909102016001810154600282015491925090600160a060020a0381169060a060020a900461ffff1684565b60095481565b60075481565b600a5481565b600160a060020a03338116600090815260056020908152604080832093861683529290529081205480831115610d2957600160a060020a033381166000908152600560209081526040808320938816835292905290812055610d60565b610d39818463ffffffff61345916565b600160a060020a033381166000908152600560209081526040808320938916835292905220555b600160a060020a0333811660008181526005602090815260408083209489168084529490915290819020547f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925915190815260200160405180910390a3600191505b5092915050565b600d805482908110610dd657fe5b6000918252602090912060069091020160018101546002820154600483015460058401549394509192600160a060020a0382169260a060020a90920461ffff169160ff169086565b600654600160a060020a031681565b600160a060020a031660009081526003602052604090205490565b60008073d5d6301de62d82f461dc29824fc597d38d80c424600160a060020a0333161480610e925750731e4f1275bb041586d7bec44d2e3e4f30e0da7ba4600160a060020a033316145b80610eb9575073e1811ec49f493afb1f4b42e3ef4a3b9d62d9a01b600160a060020a033316145b80610ed2575060065433600160a060020a039081169116145b1515610edd57600080fd5b601054610efb90600160a060020a033016319063ffffffff61345916565b915081831115610f09578192505b506003820473d5d6301de62d82f461dc29824fc597d38d80c4246108fc82150282604051600060405180830381858888f193505050501515610f4a57600080fd5b731e4f1275bb041586d7bec44d2e3e4f30e0da7ba481156108fc0282604051600060405180830381858888f193505050501515610f8657600080fd5b73e1811ec49f493afb1f4b42e3ef4a3b9d62d9a01b81156108fc0282604051600060405180830381858888f193505050501515610fc257600080fd5b505050565b600b5481565b610fd56136a0565b600080600080600f87815481101515610fea57fe5b906000526020600020906003020160806040519081016040529081600082018054600181600116156101000203166002900480601f01602080910402602001604051908101604052809291908181526020018280546001816001161561010002031660029004801561109d5780601f106110725761010080835404028352916020019161109d565b820191906000526020600020905b81548152906001019060200180831161108057829003601f168201915b50505091835250506001820154602080830191909152600290920154600160a060020a038116604083015260a060020a900461ffff16606090910152909550600090860151116110ec57600080fd5b858560200151146110fc57600080fd5b600160a060020a0333166000908152600360205260409020548690101561112257600080fd5b33600160a060020a03168560400151600160a060020a0316141561114557600080fd5b600160a060020a03331660009081526003602052604090205461116e908763ffffffff61345916565b600160a060020a033316600090815260036020526040902055600b5460649061119d908863ffffffff61348116565b8115156111a657fe5b04935060646111c087600c5461348190919063ffffffff16565b8115156111c957fe5b0492506111dc868563ffffffff61345916565b91506111ee828463ffffffff61345916565b915061122382600360008860400151600160a060020a031681526020810191909152604001600020549063ffffffff61346b16565b600360008760400151600160a060020a0390811682526020808301939093526040918201600090812094909455600654168352600390915290205461126e908563ffffffff61346b16565b600654600160a060020a0316600090815260036020526040902055600d606086015161ffff168154811015156112a057fe5b6000918252602080832060026006909302019190910154600160a060020a031680835260039091526040909120549091506112e1908463ffffffff61346b16565b600160a060020a038216600090815260036020526040902055600f80543391908990811061130b57fe5b906000526020600020906003020160020160006101000a815481600160a060020a030219169083600160a060020a031602179055506113746002600f8981548110151561135457fe5b90600052602060002090600302016001015461348190919063ffffffff16565b600f80548990811061138257fe5b9060005260206000209060030201600101819055507f7c9ad11aa27b57eb5eea52d3d9a74277b8454eeef2c3aa9e999d882267674e99878760405191825260208201526040908101905180910390a150505050505050565b6113e26136cf565b600080600d8461ffff168154811015156113f857fe5b906000526020600020906006020160e06040519081016040529081600082018054600181600116156101000203166002900480601f0160208091040260200160405190810160405280929190818152602001828054600181600116156101000203166002900480156114ab5780601f10611480576101008083540402835291602001916114ab565b820191906000526020600020905b81548152906001019060200180831161148e57829003601f168201915b505050918352505060018201546020808301919091526002830154600160a060020a03811660408085019190915260a060020a90910461ffff16606084015260038401805460809094019390929091828202909101905190810160405280929190818152602001828054801561154057602002820191906000526020600020905b81548152602001906001019080831161152c575b5050509183525050600482015460ff1615156020820152600590910154604090910152925060a0830151151560011461157857600080fd5b826020015134101561158957600080fd5b33600160a060020a03168360400151600160a060020a031614156115ac57600080fd5b60646115c584602001516009549063ffffffff61348116565b8115156115ce57fe5b0491508260400151905080600160a060020a03166108fc6115fa8486602001519063ffffffff61345916565b9081150290604051600060405180830381858888f19350505050151561161f57600080fd5b33600d8561ffff1681548110151561163357fe5b600091825260208220600691909102016002018054600160a060020a031916600160a060020a039390931692909217909155600d805461ffff871690811061167757fe5b906000526020600020906006020160040160006101000a81548160ff0219169083151502179055508260200151600d805461ffff87169081106116b657fe5b9060005260206000209060060201600501819055506116d98360600151856134ac565b600080516020613b96833981519152848460200151833360001960405161ffff90951685526020850193909352600160a060020a0391821660408086019190915291166060840152608083019190915260a0909101905180910390a150505050565b601180548290811061174957fe5b600091825260209091206003909102018054600182015460029092015461ffff9091169250600160a060020a031683565b60018054600181600116156101000203166002900480601f016020809104026020016040519081016040528092919081815260200182805460018160011615610100020316600290048015610a4c5780601f10610a2157610100808354040283529160200191610a4c565b33600160a060020a0316600d8361ffff1681548110151561180257fe5b6000918252602090912060026006909202010154600160a060020a03161461182957600080fd5b80600d8361ffff1681548110151561183d57fe5b9060005260206000209060060201600101819055506001600d8361ffff1681548110151561186757fe5b60009182526020909120600690910201600401805460ff19169115159190911790557f0b986d5d004281c772a464f4eacd47239e3226bb5d8d17e69f5e37f5ddb7e654828260405161ffff909216825260208201526040908101905180910390a15050565b33600160a060020a0316600d8261ffff168154811015156118e957fe5b6000918252602090912060026006909202010154600160a060020a03161461191057600080fd5b6000600d8261ffff1681548110151561192557fe5b60009182526020909120600690910201600401805460ff19169115159190911790557f3c0759c341f371c2750cb2ceeeb6ec99ea2f1c90c2334b005ed637525c7afc5c8160405161ffff909116815260200160405180910390a150565b61198a6136cf565b611992613719565b6000806000600d8661ffff168154811015156119aa57fe5b906000526020600020906006020160e06040519081016040529081600082018054600181600116156101000203166002900480601f016020809104026020016040519081016040528092919081815260200182805460018160011615610100020316600290048015611a5d5780601f10611a3257610100808354040283529160200191611a5d565b820191906000526020600020905b815481529060010190602001808311611a4057829003601f168201915b505050918352505060018201546020808301919091526002830154600160a060020a03811660408085019190915260a060020a90910461ffff166060840152600384018054608090940193909290918282029091019051908101604052809291908181526020018280548015611af257602002820191906000526020600020905b815481526020019060010190808311611ade575b5050509183525050600482015460ff1615156020820152600590910154604090910152945060a08501511515600114611b2a57600080fd5b8460400151600160a060020a031615611b4257600080fd5b8460200151341015611b5357600080fd5b33600d8761ffff16815481101515611b6757fe5b600091825260208220600691909102016002018054600160a060020a031916600160a060020a039390931692909217909155600d805461ffff8916908110611bab57fe5b906000526020600020906006020160040160006101000a81548160ff0219169083151502179055508460200151600d805461ffff8916908110611bea57fe5b906000526020600020906006020160050181905550600e856060015161ffff16815481101515611c1657fe5b9060005260206000209060020201600101805480602002602001604051908101604052809291908181526020018280548015611c9957602002820191906000526020600020906000905b82829054906101000a900461ffff1661ffff1681526020019060020190602082600101049283019260010382029150808411611c605790505b505050505093508351600854811515611cae57fe5b049250600091505b83518261ffff161015611d6a57600d848361ffff1681518110611cd557fe5b9060200190602002015161ffff16815481101515611cef57fe5b6000918252602090912060026006909202010154600160a060020a031690508015611d5f57600160a060020a038116600090815260036020526040902054611d3d908463ffffffff61346b16565b600160a060020a03821660009081526003602052604090205560048054840190555b600190910190611cb6565b600080516020613b9683398151915286866020015160003360001960405161ffff90951685526020850193909352600160a060020a0391821660408086019190915291166060840152608083019190915260a0909101905180910390a1505050505050565b600654600090819033600160a060020a03908116911614611def57600080fd5b600654600d5460a060020a90910461ffff169010611e0c57600080fd5b6001600d8054806001018281611e22919061372b565b9160005260206000209060060201600060e0604051908101604052808a81526020018981526020016000600160a060020a031681526020018861ffff1681526020016000604051805910611e735750595b90808252806020026020018201604052508152600160208201526000604090910152919050815181908051611eac929160200190613757565b50602082015181600101556040820151600282018054600160a060020a031916600160a060020a039290921691909117905560608201518160020160146101000a81548161ffff021916908361ffff160217905550608082015181600301908051611f1b9291602001906137d5565b5060a082015160048201805460ff191691151591909117905560c082015181600501555050039050600e8361ffff16815481101515611f5657fe5b90600052602060002090600202016001018054806001018281611f79919061380f565b916000526020600020906010918282040191900660020283909190916101000a81548161ffff021916908361ffff160217905550507f6aea3abde5fe13332dca1abdda86999b40570d7328d1ff22df39b639ef7930d6818686866040518481526040810183905261ffff8216606082015260806020820181815290820185818151815260200191508051906020019080838360005b8381101561202657808201518382015260200161200e565b50505050905090810190601f1680156120535780820380516001836020036101000a031916815260200191505b509550505050505060405180910390a1949350505050565b60065460a060020a900461ffff1681565b60085481565b6000600160a060020a038316151561209957600080fd5b600160a060020a0333166000908152600360205260409020548211156120be57600080fd5b600160a060020a0333166000908152600360205260409020546120e7908363ffffffff61345916565b600160a060020a03338116600090815260036020526040808220939093559085168152205461211c908363ffffffff61346b16565b600160a060020a0380851660008181526003602052604090819020939093559133909116907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef9085905190815260200160405180910390a350600192915050565b612185613843565b601180548390811061219357fe5b906000526020600020906003020160606040519081016040908152825461ffff16825260018301546020830152600290920154600160a060020a0390811692820192835290925033169051600160a060020a0316146121f157600080fd5b33600160a060020a03166108fc82602001519081150290604051600060405180830381858888f19350505050151561222857600080fd5b61223f81602001516010549063ffffffff61345916565b60105560118054600091908490811061225457fe5b60009182526020822060039190910201805461ffff191661ffff9390931692909217909155601180548490811061228757fe5b90600052602060002090600302016001018190555060006011838154811015156122ad57fe5b906000526020600020906003020160020160006101000a815481600160a060020a030219169083600160a060020a031602179055507fb0afb0649ace03a89dfaef4e0ec1b57a8147430a37de1d0bd938cf0e1ba1d4cc8260405190815260200160405180910390a15050565b600654600090819033600160a060020a0390811691161461233957600080fd5b6000841161234657600080fd5b6001600f805480600101828161235c9190613863565b91600052602060002090600302016000608060405190810160409081528a8252602082018a905260009082015261ffff881660608201529190508151819080516123aa929160200190613757565b50602082015181600101556040820151600282018054600160a060020a031916600160a060020a039290921691909117905560608201518160020160146101000a81548161ffff021916908361ffff1602179055505050039050600d8361ffff1681548110151561241757fe5b9060005260206000209060060201600301805480600101828161243a919061388f565b5060009182526020909120018190557f3d9d17a8fce809f94f985369b4789ce434e54d263e670183cad99a99d83300a1818686866040518481526040810183905261ffff8216606082015260806020820181815290820185818151815260200191508051906020019080838360008381101561202657808201518382015260200161200e565b60105481565b600c5481565b600160a060020a033381166000908152600560209081526040808320938616835292905290812054612504908363ffffffff61346b16565b600160a060020a0333811660008181526005602090815260408083209489168084529490915290819020849055919290917f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92591905190815260200160405180910390a350600192915050565b600654600090819033600160a060020a0390811691161461259057600080fd5b6001600e80548060010182816125a691906138b3565b91600052602060002090600202016000604080519081016040528088815260200160006040518059106125d65750595b90808252806020026020018201604052509052919050815181908051612600929160200190613757565b5060208201518160010190805161261b9291602001906138df565b505050039392505050565b61262e6136cf565b612636613843565b600080600d8661ffff1681548110151561264c57fe5b906000526020600020906006020160e06040519081016040529081600082018054600181600116156101000203166002900480601f0160208091040260200160405190810160405280929190818152602001828054600181600116156101000203166002900480156126ff5780601f106126d4576101008083540402835291602001916126ff565b820191906000526020600020905b8154815290600101906020018083116126e257829003601f168201915b505050918352505060018201546020808301919091526002830154600160a060020a03811660408085019190915260a060020a90910461ffff16606084015260038401805460809094019390929091828202909101905190810160405280929190818152602001828054801561279457602002820191906000526020600020905b815481526020019060010190808311612780575b5050509183525050600482015460ff16151560208201526005909101546040909101526011805491955090889081106127c957fe5b906000526020600020906003020160606040519081016040908152825461ffff908116835260018401546020840152600290930154600160a060020a03169082015293508616835161ffff161461281f57600080fd5b8260400151600160a060020a0316151561283857600080fd5b33600160a060020a03168360400151600160a060020a0316141561285b57600080fd5b8483602001511461286b57600080fd5b33600160a060020a03168460400151600160a060020a03161461288d57600080fd5b6009546064906128a3908763ffffffff61348116565b8115156128ac57fe5b0491506128bf858363ffffffff61345916565b9050600d8661ffff168154811015156128d457fe5b6000918252602090912060026006909202010154600160a060020a031681156108fc0282604051600060405180830381858888f19350505050151561291857600080fd5b60105461292b908263ffffffff61345916565b6010556040830151600d805461ffff891690811061294557fe5b906000526020600020906006020160020160006101000a815481600160a060020a030219169083600160a060020a0316021790555084600d8761ffff1681548110151561298e57fe5b9060005260206000209060060201600501819055506000600d8761ffff168154811015156129b857fe5b60009182526020909120600690910201600401805460ff19169115159190911790556129e86060850151876134ac565b600080516020613b9683398151915286863386604001518b60405161ffff90951685526020850193909352600160a060020a0391821660408086019190915291166060840152608083019190915260a0909101905180910390a16000601188815481101515612a5357fe5b60009182526020822060039190910201805461ffff191661ffff93909316929092179091556011805489908110612a8657fe5b9060005260206000209060030201600101819055506000601188815481101515612aac57fe5b906000526020600020906003020160020160006101000a815481600160a060020a030219169083600160a060020a0316021790555050505050505050565b600160a060020a03918216600090815260056020908152604080832093909416825291909152205490565b612b1d6136cf565b612b25613719565b6006546000908190819033600160a060020a03908116911614612b4757600080fd5b600d805461ffff8916908110612b5957fe5b906000526020600020906006020160e06040519081016040529081600082018054600181600116156101000203166002900480601f016020809104026020016040519081016040528092919081815260200182805460018160011615610100020316600290048015612c0c5780601f10612be157610100808354040283529160200191612c0c565b820191906000526020600020905b815481529060010190602001808311612bef57829003601f168201915b505050918352505060018201546020808301919091526002830154600160a060020a03811660408085019190915260a060020a90910461ffff166060840152600384018054608090940193909290918282029091019051908101604052809291908181526020018280548015612ca157602002820191906000526020600020905b815481526020019060010190808311612c8d575b5050509183525050600482015460ff1615156020820152600590910154604090910152945060a08501511515600114612cd957600080fd5b8460400151600160a060020a031615612cf157600080fd5b85600d8861ffff16815481101515612d0557fe5b600091825260208220600691909102016002018054600160a060020a031916600160a060020a039390931692909217909155600d805461ffff8a16908110612d4957fe5b906000526020600020906006020160040160006101000a81548160ff0219169083151502179055508460200151600d805461ffff8a16908110612d8857fe5b906000526020600020906006020160050181905550600e856060015161ffff16815481101515612db457fe5b9060005260206000209060020201600101805480602002602001604051908101604052809291908181526020018280548015612e3757602002820191906000526020600020906000905b82829054906101000a900461ffff1661ffff1681526020019060020190602082600101049283019260010382029150808411612dfe5790505b505050505093508351600854811515612e4c57fe5b049250600091505b83518261ffff161015612f0857600d848361ffff1681518110612e7357fe5b9060200190602002015161ffff16815481101515612e8d57fe5b6000918252602090912060026006909202010154600160a060020a031690508015612efd57600160a060020a038116600090815260036020526040902054612edb908463ffffffff61346b16565b600160a060020a03821660009081526003602052604090205560048054840190555b600190910190612e54565b600080516020613b9683398151915287866020015160008960001960405161ffff90951685526020850193909352600160a060020a0391821660408086019190915291166060840152608083019190915260a0909101905180910390a150505050505050565b60065460009033600160a060020a03908116911614612f8c57600080fd5b600d805461ffff8616908110612f9e57fe5b6000918252602090912060026006909202010154600160a060020a03161515612fc657600080fd5b60008311612fd357600080fd5b3483901015612fe157600080fd5b81600160a060020a0316600d8561ffff16815481101515612ffe57fe5b6000918252602090912060026006909202010154600160a060020a0316141561302657600080fd5b60016011805480600101828161303c9190613984565b916000526020600020906003020160006060604051908101604090815261ffff8a16825260208201899052600160a060020a038816908201529190508151815461ffff191661ffff919091161781556020820151816001015560408201516002919091018054600160a060020a031916600160a060020a039092169190911790555060105491900391506130d0908461346b565b6010819055507f5aae35e7071630e315bae14b34295052ec312a6cbaf5e75894549df1e4f25f9f81858585600d8961ffff1681548110151561310e57fe5b6000918252602090912060026006909202010154600160a060020a031660405194855261ffff9093166020850152604080850192909252600160a060020a03908116606085015291909116608083015260a0909101905180910390a150505050565b6000600d8361ffff1681548110151561318557fe5b6000918252602090912060026006909202010154600160a060020a031615156131ad57600080fd5b600082116131ba57600080fd5b34829010156131c857600080fd5b33600160a060020a0316600d8461ffff168154811015156131e557fe5b6000918252602090912060026006909202010154600160a060020a0316141561320d57600080fd5b6001601180548060010182816132239190613984565b916000526020600020906003020160006060604051908101604090815261ffff8916825260208201889052600160a060020a033316908201529190508151815461ffff191661ffff919091161781556020820151816001015560408201516002919091018054600160a060020a031916600160a060020a039092169190911790555060105491900391506132b7908361346b565b6010819055507f5aae35e7071630e315bae14b34295052ec312a6cbaf5e75894549df1e4f25f9f81848433600d8861ffff168154811015156132f557fe5b6000918252602090912060026006909202010154600160a060020a031660405194855261ffff9093166020850152604080850192909252600160a060020a03908116606085015291909116608083015260a0909101905180910390a1505050565b60065433600160a060020a0390811691161461337157600080fd5b600d805461ffff861690811061338357fe5b6000918252602090912060026006909202010154600160a060020a0316156133aa57600080fd5b82600d8561ffff168154811015156133be57fe5b90600052602060002090600602016000019080516133e0929160200190613757565b5081600d8561ffff168154811015156133f557fe5b90600052602060002090600602016001018190555080600d8561ffff1681548110151561341e57fe5b906000526020600020906006020160020160006101000a815481600160a060020a030219169083600160a060020a0316021790555050505050565b60008282111561346557fe5b50900390565b60008282018381101561347a57fe5b9392505050565b6000808315156134945760009150610dc1565b508282028284828115156134a457fe5b041461347a57fe5b6134b4613719565b600a54600654600160a060020a03166000908152600360205260408120549091829182919010156134e457613698565b600e805461ffff88169081106134f657fe5b906000526020600020906002020160010180548060200260200160405190810160405280929190818152602001828054801561357957602002820191906000526020600020906000905b82829054906101000a900461ffff1661ffff16815260200190600201906020826001010492830192600103820291508084116135405790505b5050505050935083516001141561358f57613698565b6001845103600a548115156135a057fe5b049250600091505b83518261ffff16101561369857600d848361ffff16815181106135c757fe5b9060200190602002015161ffff168154811015156135e157fe5b6000918252602090912060026006909202010154600160a060020a03169050801580159061363057508461ffff16848361ffff168151811061361f57fe5b9060200190602002015161ffff1614155b1561368d57600160a060020a03811660009081526003602052604090205461365e908463ffffffff61346b16565b600160a060020a0380831660009081526003602052604080822093909355600654909116815220805484900390555b6001909101906135a8565b505050505050565b6080604051908101604052806136b4613719565b81526000602082018190526040820181905260609091015290565b60e0604051908101604052806136e3613719565b8152600060208201819052604082018190526060820152608001613705613719565b815260006020820181905260409091015290565b60206040519081016040526000815290565b815481835581811511610fc257600602816006028360005260206000209182019101610fc291906139b0565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f1061379857805160ff19168380011785556137c5565b828001600101855582156137c5579182015b828111156137c55782518255916020019190600101906137aa565b506137d1929150613a1e565b5090565b8280548282559060005260206000209081019282156137c557916020028201828111156137c55782518255916020019190600101906137aa565b815481835581811511610fc257600f016010900481600f01601090048360005260206000209182019101610fc29190613a1e565b606060405190810160409081526000808352602083018190529082015290565b815481835581811511610fc257600302816003028360005260206000209182019101610fc29190613a38565b815481835581811511610fc257600083815260209020610fc2918101908301613a1e565b815481835581811511610fc257600202816002028360005260206000209182019101610fc29190613a83565b82805482825590600052602060002090600f016010900481019282156139785791602002820160005b8382111561394857835183826101000a81548161ffff021916908361ffff1602179055509260200192600201602081600101049283019260010302613908565b80156139765782816101000a81549061ffff0219169055600201602081600101049283019260010302613948565b505b506137d1929150613ab4565b815481835581811511610fc257600302816003028360005260206000209182019101610fc29190613ad3565b610ae791905b808211156137d15760006139ca8282613b0b565b60006001830181905560028301805475ffffffffffffffffffffffffffffffffffffffffffff19169055613a02906003840190613b52565b5060048101805460ff19169055600060058201556006016139b6565b610ae791905b808211156137d15760008155600101613a24565b610ae791905b808211156137d1576000613a528282613b0b565b506000600182015560028101805475ffffffffffffffffffffffffffffffffffffffffffff19169055600301613a3e565b610ae791905b808211156137d1576000613a9d8282613b0b565b613aab600183016000613b70565b50600201613a89565b610ae791905b808211156137d157805461ffff19168155600101613aba565b610ae791905b808211156137d157805461ffff1916815560006001820155600281018054600160a060020a0319169055600301613ad9565b50805460018160011615610100020316600290046000825580601f10613b315750613b4f565b601f016020900490600052602060002090810190613b4f9190613a1e565b50565b5080546000825590600052602060002090810190613b4f9190613a1e565b50805460008255600f016010900490600052602060002090810190613b4f9190613a1e56005efb38ad30f497e82c51ea3ed01f9afe1195fb15ebceb0ad2b2c64eaacf19c78a165627a7a723058205e08dd01ca0acf6b581fa8bda2e0e898353ee44bc5a6f3b73e96fea34d80f7be0029
Deployed Bytecode
0x6060604052600436106101e25763ffffffff7c010000000000000000000000000000000000000000000000000000000060003504166306fdde0381146101e757806308e9daa514610271578063095ea7b31461030f57806318160ddd1461034557806323b872dd1461036a578063313ce5671461039257806337f83291146103bb5780634a87e08a1461047c5780634c34d7e91461048f5780635a768e4a146104a257806366188463146104b55780636a51b918146104d75780636e2c10a1146105a957806370a08231146105d85780637c5b4a37146105f757806382b57b961461060f578063839acf14146106225780638973e3161461063b5780638a72ea6a1461064a57806395d89b411461069257806396dbad1e146106a55780639e65a03a146106c2578063a0bde945146106dc578063a25fc8dc146106eb578063a2741bdb14610747578063a27c175614610771578063a9059cbb14610784578063ae93e513146107a6578063b2bdc6b3146107bc578063bd1de90014610818578063d02e8f701461082b578063d73dd6231461083e578063db5a277814610860578063dc1c1389146108b1578063dd62ed3e146108d1578063e3b55276146108f6578063e6c89d4a1461091c578063ee5845cc1461093a578063f93e2d311461094c575b600080fd5b34156101f257600080fd5b6101fa6109b6565b60405160208082528190810183818151815260200191508051906020019080838360005b8381101561023657808201518382015260200161021e565b50505050905090810190601f1680156102635780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b341561027c57600080fd5b610287600435610a54565b604051602080825282546002600019610100600184161502019091160490820181905281906040820190849080156103005780601f106102d557610100808354040283529160200191610300565b820191906000526020600020905b8154815290600101906020018083116102e357829003601f168201915b50509250505060405180910390f35b341561031a57600080fd5b610331600160a060020a0360043516602435610a77565b604051901515815260200160405180910390f35b341561035057600080fd5b610358610ae3565b60405190815260200160405180910390f35b341561037557600080fd5b610331600160a060020a0360043581169060243516604435610aea565b341561039d57600080fd5b6103a5610c6c565b60405160ff909116815260200160405180910390f35b34156103c657600080fd5b6103d1600435610c75565b60405160208101849052600160a060020a038316604082015261ffff821660608201526080808252855460026000196101006001841615020190911604908201819052819060a08201908790801561046a5780601f1061043f5761010080835404028352916020019161046a565b820191906000526020600020905b81548152906001019060200180831161044d57829003601f168201915b50509550505050505060405180910390f35b341561048757600080fd5b610358610cba565b341561049a57600080fd5b610358610cc0565b34156104ad57600080fd5b610358610cc6565b34156104c057600080fd5b610331600160a060020a0360043516602435610ccc565b34156104e257600080fd5b6104ed600435610dc8565b60405160208101869052600160a060020a038516604082015261ffff84166060820152821515608082015260a0810182905260c0808252875460026000196101006001841615020190911604908201819052819060e0820190899080156105955780601f1061056a57610100808354040283529160200191610595565b820191906000526020600020905b81548152906001019060200180831161057857829003601f168201915b505097505050505050505060405180910390f35b34156105b457600080fd5b6105bc610e1e565b604051600160a060020a03909116815260200160405180910390f35b34156105e357600080fd5b610358600160a060020a0360043516610e2d565b341561060257600080fd5b61060d600435610e48565b005b341561061a57600080fd5b610358610fc7565b341561062d57600080fd5b61060d600435602435610fcd565b61060d61ffff600435166113da565b341561065557600080fd5b61066060043561173b565b60405161ffff90931683526020830191909152600160a060020a03166040808301919091526060909101905180910390f35b341561069d57600080fd5b6101fa61177a565b34156106b057600080fd5b61060d61ffff600435166024356117e5565b34156106cd57600080fd5b61060d61ffff600435166118cc565b61060d61ffff60043516611982565b34156106f657600080fd5b61035860046024813581810190830135806020601f82018190048102016040519081016040528181529291906020840183838082843750949650508435946020013561ffff169350611dcf92505050565b341561075257600080fd5b61075a61206b565b60405161ffff909116815260200160405180910390f35b341561077c57600080fd5b61035861207c565b341561078f57600080fd5b610331600160a060020a0360043516602435612082565b34156107b157600080fd5b61060d60043561217d565b34156107c757600080fd5b61035860046024813581810190830135806020601f82018190048102016040519081016040528181529291906020840183838082843750949650508435946020013561ffff16935061231992505050565b341561082357600080fd5b6103586124c0565b341561083657600080fd5b6103586124c6565b341561084957600080fd5b610331600160a060020a03600435166024356124cc565b341561086b57600080fd5b61035860046024813581810190830135806020601f8201819004810201604051908101604052818152929190602084018383808284375094965061257095505050505050565b34156108bc57600080fd5b61060d60043561ffff60243516604435612626565b34156108dc57600080fd5b610358600160a060020a0360043581169060243516612aea565b341561090157600080fd5b61060d61ffff60043516600160a060020a0360243516612b15565b61060d61ffff60043516602435600160a060020a0360443516612f6e565b61060d61ffff60043516602435613170565b341561095757600080fd5b61060d6004803561ffff169060446024803590810190830135806020601f820181900481020160405190810160405281815292919060208401838380828437509496505084359460200135600160a060020a0316935061335692505050565b60008054600181600116156101000203166002900480601f016020809104026020016040519081016040528092919081815260200182805460018160011615610100020316600290048015610a4c5780601f10610a2157610100808354040283529160200191610a4c565b820191906000526020600020905b815481529060010190602001808311610a2f57829003601f168201915b505050505081565b600e805482908110610a6257fe5b60009182526020909120600290910201905081565b600160a060020a03338116600081815260056020908152604080832094871680845294909152808220859055909291907f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b9259085905190815260200160405180910390a350600192915050565b6004545b90565b6000600160a060020a0383161515610b0157600080fd5b600160a060020a038416600090815260036020526040902054821115610b2657600080fd5b600160a060020a0380851660009081526005602090815260408083203390941683529290522054821115610b5957600080fd5b600160a060020a038416600090815260036020526040902054610b82908363ffffffff61345916565b600160a060020a038086166000908152600360205260408082209390935590851681522054610bb7908363ffffffff61346b16565b600160a060020a03808516600090815260036020908152604080832094909455878316825260058152838220339093168252919091522054610bff908363ffffffff61345916565b600160a060020a03808616600081815260056020908152604080832033861684529091529081902093909355908516917fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef9085905190815260200160405180910390a35060019392505050565b60025460ff1681565b600f805482908110610c8357fe5b600091825260209091206003909102016001810154600282015491925090600160a060020a0381169060a060020a900461ffff1684565b60095481565b60075481565b600a5481565b600160a060020a03338116600090815260056020908152604080832093861683529290529081205480831115610d2957600160a060020a033381166000908152600560209081526040808320938816835292905290812055610d60565b610d39818463ffffffff61345916565b600160a060020a033381166000908152600560209081526040808320938916835292905220555b600160a060020a0333811660008181526005602090815260408083209489168084529490915290819020547f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925915190815260200160405180910390a3600191505b5092915050565b600d805482908110610dd657fe5b6000918252602090912060069091020160018101546002820154600483015460058401549394509192600160a060020a0382169260a060020a90920461ffff169160ff169086565b600654600160a060020a031681565b600160a060020a031660009081526003602052604090205490565b60008073d5d6301de62d82f461dc29824fc597d38d80c424600160a060020a0333161480610e925750731e4f1275bb041586d7bec44d2e3e4f30e0da7ba4600160a060020a033316145b80610eb9575073e1811ec49f493afb1f4b42e3ef4a3b9d62d9a01b600160a060020a033316145b80610ed2575060065433600160a060020a039081169116145b1515610edd57600080fd5b601054610efb90600160a060020a033016319063ffffffff61345916565b915081831115610f09578192505b506003820473d5d6301de62d82f461dc29824fc597d38d80c4246108fc82150282604051600060405180830381858888f193505050501515610f4a57600080fd5b731e4f1275bb041586d7bec44d2e3e4f30e0da7ba481156108fc0282604051600060405180830381858888f193505050501515610f8657600080fd5b73e1811ec49f493afb1f4b42e3ef4a3b9d62d9a01b81156108fc0282604051600060405180830381858888f193505050501515610fc257600080fd5b505050565b600b5481565b610fd56136a0565b600080600080600f87815481101515610fea57fe5b906000526020600020906003020160806040519081016040529081600082018054600181600116156101000203166002900480601f01602080910402602001604051908101604052809291908181526020018280546001816001161561010002031660029004801561109d5780601f106110725761010080835404028352916020019161109d565b820191906000526020600020905b81548152906001019060200180831161108057829003601f168201915b50505091835250506001820154602080830191909152600290920154600160a060020a038116604083015260a060020a900461ffff16606090910152909550600090860151116110ec57600080fd5b858560200151146110fc57600080fd5b600160a060020a0333166000908152600360205260409020548690101561112257600080fd5b33600160a060020a03168560400151600160a060020a0316141561114557600080fd5b600160a060020a03331660009081526003602052604090205461116e908763ffffffff61345916565b600160a060020a033316600090815260036020526040902055600b5460649061119d908863ffffffff61348116565b8115156111a657fe5b04935060646111c087600c5461348190919063ffffffff16565b8115156111c957fe5b0492506111dc868563ffffffff61345916565b91506111ee828463ffffffff61345916565b915061122382600360008860400151600160a060020a031681526020810191909152604001600020549063ffffffff61346b16565b600360008760400151600160a060020a0390811682526020808301939093526040918201600090812094909455600654168352600390915290205461126e908563ffffffff61346b16565b600654600160a060020a0316600090815260036020526040902055600d606086015161ffff168154811015156112a057fe5b6000918252602080832060026006909302019190910154600160a060020a031680835260039091526040909120549091506112e1908463ffffffff61346b16565b600160a060020a038216600090815260036020526040902055600f80543391908990811061130b57fe5b906000526020600020906003020160020160006101000a815481600160a060020a030219169083600160a060020a031602179055506113746002600f8981548110151561135457fe5b90600052602060002090600302016001015461348190919063ffffffff16565b600f80548990811061138257fe5b9060005260206000209060030201600101819055507f7c9ad11aa27b57eb5eea52d3d9a74277b8454eeef2c3aa9e999d882267674e99878760405191825260208201526040908101905180910390a150505050505050565b6113e26136cf565b600080600d8461ffff168154811015156113f857fe5b906000526020600020906006020160e06040519081016040529081600082018054600181600116156101000203166002900480601f0160208091040260200160405190810160405280929190818152602001828054600181600116156101000203166002900480156114ab5780601f10611480576101008083540402835291602001916114ab565b820191906000526020600020905b81548152906001019060200180831161148e57829003601f168201915b505050918352505060018201546020808301919091526002830154600160a060020a03811660408085019190915260a060020a90910461ffff16606084015260038401805460809094019390929091828202909101905190810160405280929190818152602001828054801561154057602002820191906000526020600020905b81548152602001906001019080831161152c575b5050509183525050600482015460ff1615156020820152600590910154604090910152925060a0830151151560011461157857600080fd5b826020015134101561158957600080fd5b33600160a060020a03168360400151600160a060020a031614156115ac57600080fd5b60646115c584602001516009549063ffffffff61348116565b8115156115ce57fe5b0491508260400151905080600160a060020a03166108fc6115fa8486602001519063ffffffff61345916565b9081150290604051600060405180830381858888f19350505050151561161f57600080fd5b33600d8561ffff1681548110151561163357fe5b600091825260208220600691909102016002018054600160a060020a031916600160a060020a039390931692909217909155600d805461ffff871690811061167757fe5b906000526020600020906006020160040160006101000a81548160ff0219169083151502179055508260200151600d805461ffff87169081106116b657fe5b9060005260206000209060060201600501819055506116d98360600151856134ac565b600080516020613b96833981519152848460200151833360001960405161ffff90951685526020850193909352600160a060020a0391821660408086019190915291166060840152608083019190915260a0909101905180910390a150505050565b601180548290811061174957fe5b600091825260209091206003909102018054600182015460029092015461ffff9091169250600160a060020a031683565b60018054600181600116156101000203166002900480601f016020809104026020016040519081016040528092919081815260200182805460018160011615610100020316600290048015610a4c5780601f10610a2157610100808354040283529160200191610a4c565b33600160a060020a0316600d8361ffff1681548110151561180257fe5b6000918252602090912060026006909202010154600160a060020a03161461182957600080fd5b80600d8361ffff1681548110151561183d57fe5b9060005260206000209060060201600101819055506001600d8361ffff1681548110151561186757fe5b60009182526020909120600690910201600401805460ff19169115159190911790557f0b986d5d004281c772a464f4eacd47239e3226bb5d8d17e69f5e37f5ddb7e654828260405161ffff909216825260208201526040908101905180910390a15050565b33600160a060020a0316600d8261ffff168154811015156118e957fe5b6000918252602090912060026006909202010154600160a060020a03161461191057600080fd5b6000600d8261ffff1681548110151561192557fe5b60009182526020909120600690910201600401805460ff19169115159190911790557f3c0759c341f371c2750cb2ceeeb6ec99ea2f1c90c2334b005ed637525c7afc5c8160405161ffff909116815260200160405180910390a150565b61198a6136cf565b611992613719565b6000806000600d8661ffff168154811015156119aa57fe5b906000526020600020906006020160e06040519081016040529081600082018054600181600116156101000203166002900480601f016020809104026020016040519081016040528092919081815260200182805460018160011615610100020316600290048015611a5d5780601f10611a3257610100808354040283529160200191611a5d565b820191906000526020600020905b815481529060010190602001808311611a4057829003601f168201915b505050918352505060018201546020808301919091526002830154600160a060020a03811660408085019190915260a060020a90910461ffff166060840152600384018054608090940193909290918282029091019051908101604052809291908181526020018280548015611af257602002820191906000526020600020905b815481526020019060010190808311611ade575b5050509183525050600482015460ff1615156020820152600590910154604090910152945060a08501511515600114611b2a57600080fd5b8460400151600160a060020a031615611b4257600080fd5b8460200151341015611b5357600080fd5b33600d8761ffff16815481101515611b6757fe5b600091825260208220600691909102016002018054600160a060020a031916600160a060020a039390931692909217909155600d805461ffff8916908110611bab57fe5b906000526020600020906006020160040160006101000a81548160ff0219169083151502179055508460200151600d805461ffff8916908110611bea57fe5b906000526020600020906006020160050181905550600e856060015161ffff16815481101515611c1657fe5b9060005260206000209060020201600101805480602002602001604051908101604052809291908181526020018280548015611c9957602002820191906000526020600020906000905b82829054906101000a900461ffff1661ffff1681526020019060020190602082600101049283019260010382029150808411611c605790505b505050505093508351600854811515611cae57fe5b049250600091505b83518261ffff161015611d6a57600d848361ffff1681518110611cd557fe5b9060200190602002015161ffff16815481101515611cef57fe5b6000918252602090912060026006909202010154600160a060020a031690508015611d5f57600160a060020a038116600090815260036020526040902054611d3d908463ffffffff61346b16565b600160a060020a03821660009081526003602052604090205560048054840190555b600190910190611cb6565b600080516020613b9683398151915286866020015160003360001960405161ffff90951685526020850193909352600160a060020a0391821660408086019190915291166060840152608083019190915260a0909101905180910390a1505050505050565b600654600090819033600160a060020a03908116911614611def57600080fd5b600654600d5460a060020a90910461ffff169010611e0c57600080fd5b6001600d8054806001018281611e22919061372b565b9160005260206000209060060201600060e0604051908101604052808a81526020018981526020016000600160a060020a031681526020018861ffff1681526020016000604051805910611e735750595b90808252806020026020018201604052508152600160208201526000604090910152919050815181908051611eac929160200190613757565b50602082015181600101556040820151600282018054600160a060020a031916600160a060020a039290921691909117905560608201518160020160146101000a81548161ffff021916908361ffff160217905550608082015181600301908051611f1b9291602001906137d5565b5060a082015160048201805460ff191691151591909117905560c082015181600501555050039050600e8361ffff16815481101515611f5657fe5b90600052602060002090600202016001018054806001018281611f79919061380f565b916000526020600020906010918282040191900660020283909190916101000a81548161ffff021916908361ffff160217905550507f6aea3abde5fe13332dca1abdda86999b40570d7328d1ff22df39b639ef7930d6818686866040518481526040810183905261ffff8216606082015260806020820181815290820185818151815260200191508051906020019080838360005b8381101561202657808201518382015260200161200e565b50505050905090810190601f1680156120535780820380516001836020036101000a031916815260200191505b509550505050505060405180910390a1949350505050565b60065460a060020a900461ffff1681565b60085481565b6000600160a060020a038316151561209957600080fd5b600160a060020a0333166000908152600360205260409020548211156120be57600080fd5b600160a060020a0333166000908152600360205260409020546120e7908363ffffffff61345916565b600160a060020a03338116600090815260036020526040808220939093559085168152205461211c908363ffffffff61346b16565b600160a060020a0380851660008181526003602052604090819020939093559133909116907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef9085905190815260200160405180910390a350600192915050565b612185613843565b601180548390811061219357fe5b906000526020600020906003020160606040519081016040908152825461ffff16825260018301546020830152600290920154600160a060020a0390811692820192835290925033169051600160a060020a0316146121f157600080fd5b33600160a060020a03166108fc82602001519081150290604051600060405180830381858888f19350505050151561222857600080fd5b61223f81602001516010549063ffffffff61345916565b60105560118054600091908490811061225457fe5b60009182526020822060039190910201805461ffff191661ffff9390931692909217909155601180548490811061228757fe5b90600052602060002090600302016001018190555060006011838154811015156122ad57fe5b906000526020600020906003020160020160006101000a815481600160a060020a030219169083600160a060020a031602179055507fb0afb0649ace03a89dfaef4e0ec1b57a8147430a37de1d0bd938cf0e1ba1d4cc8260405190815260200160405180910390a15050565b600654600090819033600160a060020a0390811691161461233957600080fd5b6000841161234657600080fd5b6001600f805480600101828161235c9190613863565b91600052602060002090600302016000608060405190810160409081528a8252602082018a905260009082015261ffff881660608201529190508151819080516123aa929160200190613757565b50602082015181600101556040820151600282018054600160a060020a031916600160a060020a039290921691909117905560608201518160020160146101000a81548161ffff021916908361ffff1602179055505050039050600d8361ffff1681548110151561241757fe5b9060005260206000209060060201600301805480600101828161243a919061388f565b5060009182526020909120018190557f3d9d17a8fce809f94f985369b4789ce434e54d263e670183cad99a99d83300a1818686866040518481526040810183905261ffff8216606082015260806020820181815290820185818151815260200191508051906020019080838360008381101561202657808201518382015260200161200e565b60105481565b600c5481565b600160a060020a033381166000908152600560209081526040808320938616835292905290812054612504908363ffffffff61346b16565b600160a060020a0333811660008181526005602090815260408083209489168084529490915290819020849055919290917f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92591905190815260200160405180910390a350600192915050565b600654600090819033600160a060020a0390811691161461259057600080fd5b6001600e80548060010182816125a691906138b3565b91600052602060002090600202016000604080519081016040528088815260200160006040518059106125d65750595b90808252806020026020018201604052509052919050815181908051612600929160200190613757565b5060208201518160010190805161261b9291602001906138df565b505050039392505050565b61262e6136cf565b612636613843565b600080600d8661ffff1681548110151561264c57fe5b906000526020600020906006020160e06040519081016040529081600082018054600181600116156101000203166002900480601f0160208091040260200160405190810160405280929190818152602001828054600181600116156101000203166002900480156126ff5780601f106126d4576101008083540402835291602001916126ff565b820191906000526020600020905b8154815290600101906020018083116126e257829003601f168201915b505050918352505060018201546020808301919091526002830154600160a060020a03811660408085019190915260a060020a90910461ffff16606084015260038401805460809094019390929091828202909101905190810160405280929190818152602001828054801561279457602002820191906000526020600020905b815481526020019060010190808311612780575b5050509183525050600482015460ff16151560208201526005909101546040909101526011805491955090889081106127c957fe5b906000526020600020906003020160606040519081016040908152825461ffff908116835260018401546020840152600290930154600160a060020a03169082015293508616835161ffff161461281f57600080fd5b8260400151600160a060020a0316151561283857600080fd5b33600160a060020a03168360400151600160a060020a0316141561285b57600080fd5b8483602001511461286b57600080fd5b33600160a060020a03168460400151600160a060020a03161461288d57600080fd5b6009546064906128a3908763ffffffff61348116565b8115156128ac57fe5b0491506128bf858363ffffffff61345916565b9050600d8661ffff168154811015156128d457fe5b6000918252602090912060026006909202010154600160a060020a031681156108fc0282604051600060405180830381858888f19350505050151561291857600080fd5b60105461292b908263ffffffff61345916565b6010556040830151600d805461ffff891690811061294557fe5b906000526020600020906006020160020160006101000a815481600160a060020a030219169083600160a060020a0316021790555084600d8761ffff1681548110151561298e57fe5b9060005260206000209060060201600501819055506000600d8761ffff168154811015156129b857fe5b60009182526020909120600690910201600401805460ff19169115159190911790556129e86060850151876134ac565b600080516020613b9683398151915286863386604001518b60405161ffff90951685526020850193909352600160a060020a0391821660408086019190915291166060840152608083019190915260a0909101905180910390a16000601188815481101515612a5357fe5b60009182526020822060039190910201805461ffff191661ffff93909316929092179091556011805489908110612a8657fe5b9060005260206000209060030201600101819055506000601188815481101515612aac57fe5b906000526020600020906003020160020160006101000a815481600160a060020a030219169083600160a060020a0316021790555050505050505050565b600160a060020a03918216600090815260056020908152604080832093909416825291909152205490565b612b1d6136cf565b612b25613719565b6006546000908190819033600160a060020a03908116911614612b4757600080fd5b600d805461ffff8916908110612b5957fe5b906000526020600020906006020160e06040519081016040529081600082018054600181600116156101000203166002900480601f016020809104026020016040519081016040528092919081815260200182805460018160011615610100020316600290048015612c0c5780601f10612be157610100808354040283529160200191612c0c565b820191906000526020600020905b815481529060010190602001808311612bef57829003601f168201915b505050918352505060018201546020808301919091526002830154600160a060020a03811660408085019190915260a060020a90910461ffff166060840152600384018054608090940193909290918282029091019051908101604052809291908181526020018280548015612ca157602002820191906000526020600020905b815481526020019060010190808311612c8d575b5050509183525050600482015460ff1615156020820152600590910154604090910152945060a08501511515600114612cd957600080fd5b8460400151600160a060020a031615612cf157600080fd5b85600d8861ffff16815481101515612d0557fe5b600091825260208220600691909102016002018054600160a060020a031916600160a060020a039390931692909217909155600d805461ffff8a16908110612d4957fe5b906000526020600020906006020160040160006101000a81548160ff0219169083151502179055508460200151600d805461ffff8a16908110612d8857fe5b906000526020600020906006020160050181905550600e856060015161ffff16815481101515612db457fe5b9060005260206000209060020201600101805480602002602001604051908101604052809291908181526020018280548015612e3757602002820191906000526020600020906000905b82829054906101000a900461ffff1661ffff1681526020019060020190602082600101049283019260010382029150808411612dfe5790505b505050505093508351600854811515612e4c57fe5b049250600091505b83518261ffff161015612f0857600d848361ffff1681518110612e7357fe5b9060200190602002015161ffff16815481101515612e8d57fe5b6000918252602090912060026006909202010154600160a060020a031690508015612efd57600160a060020a038116600090815260036020526040902054612edb908463ffffffff61346b16565b600160a060020a03821660009081526003602052604090205560048054840190555b600190910190612e54565b600080516020613b9683398151915287866020015160008960001960405161ffff90951685526020850193909352600160a060020a0391821660408086019190915291166060840152608083019190915260a0909101905180910390a150505050505050565b60065460009033600160a060020a03908116911614612f8c57600080fd5b600d805461ffff8616908110612f9e57fe5b6000918252602090912060026006909202010154600160a060020a03161515612fc657600080fd5b60008311612fd357600080fd5b3483901015612fe157600080fd5b81600160a060020a0316600d8561ffff16815481101515612ffe57fe5b6000918252602090912060026006909202010154600160a060020a0316141561302657600080fd5b60016011805480600101828161303c9190613984565b916000526020600020906003020160006060604051908101604090815261ffff8a16825260208201899052600160a060020a038816908201529190508151815461ffff191661ffff919091161781556020820151816001015560408201516002919091018054600160a060020a031916600160a060020a039092169190911790555060105491900391506130d0908461346b565b6010819055507f5aae35e7071630e315bae14b34295052ec312a6cbaf5e75894549df1e4f25f9f81858585600d8961ffff1681548110151561310e57fe5b6000918252602090912060026006909202010154600160a060020a031660405194855261ffff9093166020850152604080850192909252600160a060020a03908116606085015291909116608083015260a0909101905180910390a150505050565b6000600d8361ffff1681548110151561318557fe5b6000918252602090912060026006909202010154600160a060020a031615156131ad57600080fd5b600082116131ba57600080fd5b34829010156131c857600080fd5b33600160a060020a0316600d8461ffff168154811015156131e557fe5b6000918252602090912060026006909202010154600160a060020a0316141561320d57600080fd5b6001601180548060010182816132239190613984565b916000526020600020906003020160006060604051908101604090815261ffff8916825260208201889052600160a060020a033316908201529190508151815461ffff191661ffff919091161781556020820151816001015560408201516002919091018054600160a060020a031916600160a060020a039092169190911790555060105491900391506132b7908361346b565b6010819055507f5aae35e7071630e315bae14b34295052ec312a6cbaf5e75894549df1e4f25f9f81848433600d8861ffff168154811015156132f557fe5b6000918252602090912060026006909202010154600160a060020a031660405194855261ffff9093166020850152604080850192909252600160a060020a03908116606085015291909116608083015260a0909101905180910390a1505050565b60065433600160a060020a0390811691161461337157600080fd5b600d805461ffff861690811061338357fe5b6000918252602090912060026006909202010154600160a060020a0316156133aa57600080fd5b82600d8561ffff168154811015156133be57fe5b90600052602060002090600602016000019080516133e0929160200190613757565b5081600d8561ffff168154811015156133f557fe5b90600052602060002090600602016001018190555080600d8561ffff1681548110151561341e57fe5b906000526020600020906006020160020160006101000a815481600160a060020a030219169083600160a060020a0316021790555050505050565b60008282111561346557fe5b50900390565b60008282018381101561347a57fe5b9392505050565b6000808315156134945760009150610dc1565b508282028284828115156134a457fe5b041461347a57fe5b6134b4613719565b600a54600654600160a060020a03166000908152600360205260408120549091829182919010156134e457613698565b600e805461ffff88169081106134f657fe5b906000526020600020906002020160010180548060200260200160405190810160405280929190818152602001828054801561357957602002820191906000526020600020906000905b82829054906101000a900461ffff1661ffff16815260200190600201906020826001010492830192600103820291508084116135405790505b5050505050935083516001141561358f57613698565b6001845103600a548115156135a057fe5b049250600091505b83518261ffff16101561369857600d848361ffff16815181106135c757fe5b9060200190602002015161ffff168154811015156135e157fe5b6000918252602090912060026006909202010154600160a060020a03169050801580159061363057508461ffff16848361ffff168151811061361f57fe5b9060200190602002015161ffff1614155b1561368d57600160a060020a03811660009081526003602052604090205461365e908463ffffffff61346b16565b600160a060020a0380831660009081526003602052604080822093909355600654909116815220805484900390555b6001909101906135a8565b505050505050565b6080604051908101604052806136b4613719565b81526000602082018190526040820181905260609091015290565b60e0604051908101604052806136e3613719565b8152600060208201819052604082018190526060820152608001613705613719565b815260006020820181905260409091015290565b60206040519081016040526000815290565b815481835581811511610fc257600602816006028360005260206000209182019101610fc291906139b0565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f1061379857805160ff19168380011785556137c5565b828001600101855582156137c5579182015b828111156137c55782518255916020019190600101906137aa565b506137d1929150613a1e565b5090565b8280548282559060005260206000209081019282156137c557916020028201828111156137c55782518255916020019190600101906137aa565b815481835581811511610fc257600f016010900481600f01601090048360005260206000209182019101610fc29190613a1e565b606060405190810160409081526000808352602083018190529082015290565b815481835581811511610fc257600302816003028360005260206000209182019101610fc29190613a38565b815481835581811511610fc257600083815260209020610fc2918101908301613a1e565b815481835581811511610fc257600202816002028360005260206000209182019101610fc29190613a83565b82805482825590600052602060002090600f016010900481019282156139785791602002820160005b8382111561394857835183826101000a81548161ffff021916908361ffff1602179055509260200192600201602081600101049283019260010302613908565b80156139765782816101000a81549061ffff0219169055600201602081600101049283019260010302613948565b505b506137d1929150613ab4565b815481835581811511610fc257600302816003028360005260206000209182019101610fc29190613ad3565b610ae791905b808211156137d15760006139ca8282613b0b565b60006001830181905560028301805475ffffffffffffffffffffffffffffffffffffffffffff19169055613a02906003840190613b52565b5060048101805460ff19169055600060058201556006016139b6565b610ae791905b808211156137d15760008155600101613a24565b610ae791905b808211156137d1576000613a528282613b0b565b506000600182015560028101805475ffffffffffffffffffffffffffffffffffffffffffff19169055600301613a3e565b610ae791905b808211156137d1576000613a9d8282613b0b565b613aab600183016000613b70565b50600201613a89565b610ae791905b808211156137d157805461ffff19168155600101613aba565b610ae791905b808211156137d157805461ffff1916815560006001820155600281018054600160a060020a0319169055600301613ad9565b50805460018160011615610100020316600290046000825580601f10613b315750613b4f565b601f016020900490600052602060002090810190613b4f9190613a1e565b50565b5080546000825590600052602060002090810190613b4f9190613a1e565b50805460008255600f016010900490600052602060002090810190613b4f9190613a1e56005efb38ad30f497e82c51ea3ed01f9afe1195fb15ebceb0ad2b2c64eaacf19c78a165627a7a723058205e08dd01ca0acf6b581fa8bda2e0e898353ee44bc5a6f3b73e96fea34d80f7be0029
Swarm Source
bzzr://5e08dd01ca0acf6b581fa8bda2e0e898353ee44bc5a6f3b73e96fea34d80f7be
Loading...
Loading
Loading...
Loading
Net Worth in USD
$6,661.50
Net Worth in ETH
3.23303
Token Allocations
ETH
100.00%
Multichain Portfolio | 33 Chains
| Chain | Token | Portfolio % | Price | Amount | Value |
|---|---|---|---|---|---|
| ETH | 100.00% | $2,060.45 | 3.233 | $6,661.5 |
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.