Source Code
Latest 25 from a total of 182 transactions
| Transaction Hash |
Method
|
Block
|
From
|
|
To
|
||||
|---|---|---|---|---|---|---|---|---|---|
| Buy | 14014909 | 1507 days ago | IN | 0.015 ETH | 0.0039439 | ||||
| Buy | 14014899 | 1507 days ago | IN | 0.015 ETH | 0.00300075 | ||||
| Buy | 14013996 | 1507 days ago | IN | 0.015 ETH | 0.00245473 | ||||
| Buy | 14007781 | 1508 days ago | IN | 0.1001 ETH | 0.0038537 | ||||
| Buy | 14007768 | 1508 days ago | IN | 0.1001 ETH | 0.00359938 | ||||
| Buy | 13913938 | 1522 days ago | IN | 0.015 ETH | 0.00513286 | ||||
| Create Sale | 13902560 | 1524 days ago | IN | 0 ETH | 0.01326532 | ||||
| Buy | 13902445 | 1524 days ago | IN | 0.015 ETH | 0.00254602 | ||||
| Buy | 13902432 | 1524 days ago | IN | 0.015 ETH | 0.0065567 | ||||
| Create Sale | 13902283 | 1524 days ago | IN | 0 ETH | 0.01697811 | ||||
| Cancel Sale | 13805345 | 1539 days ago | IN | 0 ETH | 0.00446353 | ||||
| Cancel Sale | 13805340 | 1539 days ago | IN | 0 ETH | 0.001617 | ||||
| Cancel Sale | 13805339 | 1539 days ago | IN | 0 ETH | 0.00441439 | ||||
| Buy | 13181362 | 1637 days ago | IN | 0.1001 ETH | 0.00262884 | ||||
| Buy | 13113446 | 1647 days ago | IN | 0.1001 ETH | 0.00438123 | ||||
| Create Sale | 6899195 | 2633 days ago | IN | 0 ETH | 0.00020042 | ||||
| Create Sale | 6899191 | 2633 days ago | IN | 0 ETH | 0.00020042 | ||||
| Create Sale | 6898947 | 2633 days ago | IN | 0 ETH | 0.00020042 | ||||
| Create Sale | 6898947 | 2633 days ago | IN | 0 ETH | 0.00020042 | ||||
| Create Sale | 6860077 | 2639 days ago | IN | 0 ETH | 0.0003411 | ||||
| Create Sale | 6789840 | 2651 days ago | IN | 0 ETH | 0.00080168 | ||||
| Update Sale Pric... | 6747693 | 2658 days ago | IN | 0 ETH | 0.00012144 | ||||
| Update Sale Pric... | 6609276 | 2681 days ago | IN | 0 ETH | 0.00015212 | ||||
| Create Sale | 6577344 | 2686 days ago | IN | 0 ETH | 0.00042605 | ||||
| Create Sale | 6571081 | 2687 days ago | IN | 0 ETH | 0.00040084 |
Latest 8 internal transactions
Advanced mode:
| Parent Transaction Hash | Method | Block |
From
|
|
To
|
||
|---|---|---|---|---|---|---|---|
| - | 13913938 | 1522 days ago | 0.0141 ETH | ||||
| - | 13902432 | 1524 days ago | 0.0141 ETH | ||||
| - | 13113446 | 1647 days ago | 0.0001 ETH | ||||
| - | 13113446 | 1647 days ago | 0.094 ETH | ||||
| Transfer | 5982976 | 2785 days ago | 0.0001 ETH | ||||
| Transfer | 5982976 | 2785 days ago | 1.128 ETH | ||||
| Transfer | 5981943 | 2785 days ago | 4.042 ETH | ||||
| Transfer | 5973730 | 2786 days ago | 1.88 ETH |
Loading...
Loading
Loading...
Loading
Cross-Chain Transactions
Loading...
Loading
Contract Name:
CelebrityMarket
Compiler Version
v0.4.18+commit.9cf6e910
Optimization Enabled:
Yes with 200 runs
Other Settings:
default evmVersion
Contract Source Code (Solidity)
/**
*Submitted for verification at Etherscan.io on 2018-07-11
*/
pragma solidity ^0.4.18;
/**
* @title SafeMath
* @dev Math operations with safety checks that throw on error
*/
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.
*/
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;
}
}
/**
* @title Ownable
* @dev The Ownable contract has an owner address, and provides basic authorization control
* functions, this simplifies the implementation of "user permissions".
*/
contract Ownable {
address public owner;
event OwnershipTransferred(address indexed previousOwner, address indexed newOwner);
/**
* @dev The Ownable constructor sets the original `owner` of the contract to the sender
* account.
*/
function Ownable() public {
owner = msg.sender;
}
/**
* @dev Throws if called by any account other than the owner.
*/
modifier onlyOwner() {
require(msg.sender == owner);
_;
}
/**
* @dev Allows the current owner to transfer control of the contract to a newOwner.
* @param newOwner The address to transfer ownership to.
*/
function transferOwnership(address newOwner) public onlyOwner {
require(newOwner != address(0));
OwnershipTransferred(owner, newOwner);
owner = newOwner;
}
}
/**
* @title Pausable
* @dev Base contract which allows children to implement an emergency stop mechanism.
*/
contract Pausable is Ownable {
event Pause();
event Unpause();
bool public paused = false;
/**
* @dev Modifier to make a function callable only when the contract is not paused.
*/
modifier whenNotPaused() {
require(!paused);
_;
}
/**
* @dev Modifier to make a function callable only when the contract is paused.
*/
modifier whenPaused() {
require(paused);
_;
}
/**
* @dev called by the owner to pause, triggers stopped state
*/
function pause() onlyOwner whenNotPaused public {
paused = true;
Pause();
}
/**
* @dev called by the owner to unpause, returns to normal state
*/
function unpause() onlyOwner whenPaused public {
paused = false;
Unpause();
}
}
/**
* @title ERC721 interface
* @dev see https://github.com/ethereum/eips/issues/721
*/
contract ERC721 {
event Transfer(address indexed _from, address indexed _to, uint256 _tokenId);
event Approval(address indexed _owner, address indexed _approved, uint256 _tokenId);
function balanceOf(address _owner) public view returns (uint256 _balance);
function ownerOf(uint256 _tokenId) public view returns (address _owner);
function transfer(address _to, uint256 _tokenId) public;
function approve(address _to, uint256 _tokenId) public;
function takeOwnership(uint256 _tokenId) public;
}
/// @title CryptoCelebritiesMarket
/// @dev Contains models, variables, and internal methods for sales.
contract CelebrityMarket is Pausable{
ERC721 ccContract;
// Represents a sale item on an NFT
struct Sale {
// Current owner of NFT
address seller;
// Price (in wei) at beginning of a sale item
uint256 salePrice;
// Time when sale started
// NOTE: 0 if this sale has been concluded
uint64 startedAt;
}
// Owner of this contract
address public owner;
// Map from token ID to their corresponding sale.
mapping (uint256 => Sale) tokenIdToSale;
event SaleCreated(address seller,uint256 tokenId, uint256 salePrice, uint256 startedAt);
event SaleSuccessful(address seller, uint256 tokenId, uint256 totalPrice, address winner);
event SaleCancelled(address seller, uint256 tokenId);
event SaleUpdated(address seller, uint256 tokenId, uint256 oldPrice, uint256 newPrice);
/// @dev Constructor registers the nft address (CCAddress)
/// @param _ccAddress - Address of the CryptoCelebrities contract
function CelebrityMarket(address _ccAddress) public {
ccContract = ERC721(_ccAddress);
owner = msg.sender;
}
/// @dev DON'T give me your money.
function() external {}
/// @dev Remove all Ether from the contract, which is the owner's cuts
/// as well as any Ether sent directly to the contract address.
/// Always transfers to the NFT contract, but can be called either by
/// the owner or the NFT contract.
function withdrawBalance() external {
require(
msg.sender == owner
);
msg.sender.transfer(address(this).balance);
}
/// @dev Creates and begins a new sale.
/// @param _tokenId - ID of token to sell, sender must be owner.
/// @param _salePrice - Sale Price of item (in wei).
function createSale(
uint256 _tokenId,
uint256 _salePrice
)
public
whenNotPaused
{
require(_owns(msg.sender, _tokenId));
_escrow(_tokenId);
Sale memory sale = Sale(
msg.sender,
_salePrice,
uint64(now)
);
_addSale(_tokenId, sale);
}
/// @dev Update sale price of a sale item that hasn't been completed yet.
/// @notice This is a state-modifying function that can
/// be called while the contract is paused.
/// @param _tokenId - ID of token on sale
/// @param _newPrice - new sale price
function updateSalePrice(uint256 _tokenId, uint256 _newPrice)
public
{
Sale storage sale = tokenIdToSale[_tokenId];
require(_isOnSale(sale));
address seller = sale.seller;
require(msg.sender == seller);
_updateSalePrice(_tokenId, _newPrice, seller);
}
/// @dev Allows to buy a sale item, completing the sale and transferring
/// ownership of the NFT if enough Ether is supplied.
/// @param _tokenId - ID of token to buy.
function buy(uint256 _tokenId)
public
payable
whenNotPaused
{
// _bid will throw if the bid or funds transfer fails
_buy(_tokenId, msg.value);
_transfer(msg.sender, _tokenId);
}
/// @dev Cancels a sale that hasn't been completed yet.
/// Returns the NFT to original owner.
/// @notice This is a state-modifying function that can
/// be called while the contract is paused.
/// @param _tokenId - ID of token on sale
function cancelSale(uint256 _tokenId)
public
{
Sale storage sale = tokenIdToSale[_tokenId];
require(_isOnSale(sale));
address seller = sale.seller;
require(msg.sender == seller);
_cancelSale(_tokenId, seller);
}
/// @dev Cancels a sale when the contract is paused.
/// Only the owner may do this, and NFTs are returned to
/// the seller. This should only be used in emergencies.
/// @param _tokenId - ID of the NFT on sale to cancel.
function cancelSaleWhenPaused(uint256 _tokenId)
whenPaused
onlyOwner
public
{
Sale storage sale = tokenIdToSale[_tokenId];
require(_isOnSale(sale));
_cancelSale(_tokenId, sale.seller);
}
/// @dev Returns sale info for an NFT on sale.
/// @param _tokenId - ID of NFT on sale.
function getSale(uint256 _tokenId)
public
view
returns
(
address seller,
uint256 salePrice,
uint256 startedAt
) {
Sale storage sale = tokenIdToSale[_tokenId];
require(_isOnSale(sale));
return (
sale.seller,
sale.salePrice,
sale.startedAt
);
}
/// @dev Returns the current price of a sale item.
/// @param _tokenId - ID of the token price we are checking.
function getSalePrice(uint256 _tokenId)
public
view
returns (uint256)
{
Sale storage sale = tokenIdToSale[_tokenId];
require(_isOnSale(sale));
return sale.salePrice;
}
/// @dev Returns true if the claimant owns the token.
/// @param _claimant - Address claiming to own the token.
/// @param _tokenId - ID of token whose ownership to verify.
function _owns(address _claimant, uint256 _tokenId) internal view returns (bool) {
return (ccContract.ownerOf(_tokenId) == _claimant);
}
/// @dev Escrows the CCToken, assigning ownership to this contract.
/// Throws if the escrow fails.
/// @param _tokenId - ID of token whose approval to verify.
function _escrow(uint256 _tokenId) internal {
// it will throw if transfer fails
ccContract.takeOwnership(_tokenId);
}
/// @dev Transfers a CCToken owned by this contract to another address.
/// Returns true if the transfer succeeds.
/// @param _receiver - Address to transfer NFT to.
/// @param _tokenId - ID of token to transfer.
function _transfer(address _receiver, uint256 _tokenId) internal {
// it will throw if transfer fails
ccContract.transfer(_receiver, _tokenId);
}
/// @dev Adds a sale to the list of open sales. Also fires the
/// SaleCreated event.
/// @param _tokenId The ID of the token to be put on sale.
/// @param _sale Sale to add.
function _addSale(uint256 _tokenId, Sale _sale) internal {
tokenIdToSale[_tokenId] = _sale;
SaleCreated(
address(_sale.seller),
uint256(_tokenId),
uint256(_sale.salePrice),
uint256(_sale.startedAt)
);
}
/// @dev Cancels a sale unconditionally.
function _cancelSale(uint256 _tokenId, address _seller) internal {
_removeSale(_tokenId);
_transfer(_seller, _tokenId);
SaleCancelled(_seller, _tokenId);
}
/// @dev updates sale price of item
function _updateSalePrice(uint256 _tokenId, uint256 _newPrice, address _seller) internal {
// Get a reference to the sale struct
Sale storage sale = tokenIdToSale[_tokenId];
uint256 oldPrice = sale.salePrice;
sale.salePrice = _newPrice;
SaleUpdated(_seller, _tokenId, oldPrice, _newPrice);
}
/// @dev Computes the price and transfers winnings.
/// Does NOT transfer ownership of token.
function _buy(uint256 _tokenId, uint256 _amount)
internal
returns (uint256)
{
// Get a reference to the sale struct
Sale storage sale = tokenIdToSale[_tokenId];
// Explicitly check that this sale is currently live.
// (Because of how Ethereum mappings work, we can't just count
// on the lookup above failing. An invalid _tokenId will just
// return an sale object that is all zeros.)
require(_isOnSale(sale));
// Check that the incoming bid is higher than the current
// price
uint256 price = sale.salePrice;
require(_amount >= price);
// Grab a reference to the seller before the sale struct
// gets deleted.
address seller = sale.seller;
// The bid is good! Remove the sale before sending the fees
// to the sender so we can't have a reentrancy attack.
_removeSale(_tokenId);
// Transfer proceeds to seller (if there are any!)
if (price > 0) {
// Calculate the market owner's cut.
// (NOTE: _computeCut() is guaranteed to return a
// value <= price, so this subtraction can't go negative.)
uint256 ownerCut = _computeCut(price);
uint256 sellerProceeds = price - ownerCut;
// NOTE: Doing a transfer() in the middle of a complex
// method like this is generally discouraged because of
// reentrancy attacks and DoS attacks if the seller is
// a contract with an invalid fallback function. We explicitly
// guard against reentrancy attacks by removing the sale item
// before calling transfer(), and the only thing the seller
// can DoS is the sale of their own asset! (And if it's an
// accident, they can call cancelSale(). )
seller.transfer(sellerProceeds);
}
// Calculate any excess funds included with the bid. If the excess
// is anything worth worrying about, transfer it back to bidder.
// NOTE: We checked above that the bid amount is greater than or
// equal to the price so this cannot underflow.
uint256 amountExcess = _amount - price;
// Return the funds. Similar to the previous transfer, this is
// not susceptible to a re-entry attack because the sale is
// removed before any transfers occur.
msg.sender.transfer(amountExcess);
// Tell the world!
SaleSuccessful(seller, _tokenId, price, msg.sender);
return price;
}
/// @dev Removes a sale item from the list of open sales.
/// @param _tokenId - ID of NFT on sale.
function _removeSale(uint256 _tokenId) internal {
delete tokenIdToSale[_tokenId];
}
/// @dev Returns true if the NFT is on sale.
/// @param _sale - Sale to check.
function _isOnSale(Sale storage _sale) internal view returns (bool) {
return (_sale.startedAt > 0);
}
/// @dev Computes owner's cut of a sale.
/// @param _price - Sale price of NFT.
function _computeCut(uint256 _price) internal pure returns (uint256) {
return uint256(SafeMath.div(SafeMath.mul(_price, 6), 100));
}
}Contract Security Audit
- No Contract Security Audit Submitted- Submit Audit Here
Contract ABI
API[{"constant":false,"inputs":[{"name":"_tokenId","type":"uint256"}],"name":"cancelSaleWhenPaused","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[],"name":"unpause","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"_tokenId","type":"uint256"},{"name":"_newPrice","type":"uint256"}],"name":"updateSalePrice","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"paused","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[],"name":"withdrawBalance","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"_tokenId","type":"uint256"},{"name":"_salePrice","type":"uint256"}],"name":"createSale","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[],"name":"pause","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"owner","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"_tokenId","type":"uint256"}],"name":"cancelSale","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[{"name":"_tokenId","type":"uint256"}],"name":"getSale","outputs":[{"name":"seller","type":"address"},{"name":"salePrice","type":"uint256"},{"name":"startedAt","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"_tokenId","type":"uint256"}],"name":"buy","outputs":[],"payable":true,"stateMutability":"payable","type":"function"},{"constant":false,"inputs":[{"name":"newOwner","type":"address"}],"name":"transferOwnership","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[{"name":"_tokenId","type":"uint256"}],"name":"getSalePrice","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"inputs":[{"name":"_ccAddress","type":"address"}],"payable":false,"stateMutability":"nonpayable","type":"constructor"},{"payable":false,"stateMutability":"nonpayable","type":"fallback"},{"anonymous":false,"inputs":[{"indexed":false,"name":"seller","type":"address"},{"indexed":false,"name":"tokenId","type":"uint256"},{"indexed":false,"name":"salePrice","type":"uint256"},{"indexed":false,"name":"startedAt","type":"uint256"}],"name":"SaleCreated","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"name":"seller","type":"address"},{"indexed":false,"name":"tokenId","type":"uint256"},{"indexed":false,"name":"totalPrice","type":"uint256"},{"indexed":false,"name":"winner","type":"address"}],"name":"SaleSuccessful","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"name":"seller","type":"address"},{"indexed":false,"name":"tokenId","type":"uint256"}],"name":"SaleCancelled","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"name":"seller","type":"address"},{"indexed":false,"name":"tokenId","type":"uint256"},{"indexed":false,"name":"oldPrice","type":"uint256"},{"indexed":false,"name":"newPrice","type":"uint256"}],"name":"SaleUpdated","type":"event"},{"anonymous":false,"inputs":[],"name":"Pause","type":"event"},{"anonymous":false,"inputs":[],"name":"Unpause","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"previousOwner","type":"address"},{"indexed":true,"name":"newOwner","type":"address"}],"name":"OwnershipTransferred","type":"event"}]Contract Creation Code
60606040526000805460a060020a60ff0219169055341561001f57600080fd5b604051602080610c658339810160405280805160008054600160a060020a03338116600160a060020a03199283168117909355600180549190941690821617909255600280549092161790555050610be98061007c6000396000f3006060604052600436106100ab5763ffffffff60e060020a60003504166323edfb8981146100b85780633f4ba83a146100ce5780634896672e146100e15780635c975abb146100fa5780635fd8c710146101215780636019061b146101345780638456cb591461014d5780638da5cb5b14610160578063bd94b0051461018f578063d8f6d596146101a5578063d96a094a146101f1578063f2fde38b146101fc578063f8eb5fc51461021b575b34156100b657600080fd5b005b34156100c357600080fd5b6100b6600435610243565b34156100d957600080fd5b6100b66102b4565b34156100ec57600080fd5b6100b6600435602435610333565b341561010557600080fd5b61010d610383565b604051901515815260200160405180910390f35b341561012c57600080fd5b6100b6610393565b341561013f57600080fd5b6100b66004356024356103ed565b341561015857600080fd5b6100b661046a565b341561016b57600080fd5b6101736104ee565b604051600160a060020a03909116815260200160405180910390f35b341561019a57600080fd5b6100b66004356104fd565b34156101b057600080fd5b6101bb600435610546565b6040518084600160a060020a0316600160a060020a03168152602001838152602001828152602001935050505060405180910390f35b6100b6600435610599565b341561020757600080fd5b6100b6600160a060020a03600435166105c8565b341561022657600080fd5b610231600435610663565b60405190815260200160405180910390f35b6000805460a060020a900460ff16151561025c57600080fd5b60005433600160a060020a0390811691161461027757600080fd5b50600081815260036020526040902061028f8161068f565b151561029a57600080fd5b80546102b0908390600160a060020a03166106a5565b5050565b60005433600160a060020a039081169116146102cf57600080fd5b60005460a060020a900460ff1615156102e757600080fd5b6000805474ff0000000000000000000000000000000000000000191690557f7805862f689e2f13df9f062ff482ad3ad112aca9e0847911ed832e158c525b3360405160405180910390a1565b60008281526003602052604081209061034b8261068f565b151561035657600080fd5b508054600160a060020a03908116903316811461037257600080fd5b61037d848483610700565b50505050565b60005460a060020a900460ff1681565b60025433600160a060020a039081169116146103ae57600080fd5b33600160a060020a03166108fc30600160a060020a0316319081150290604051600060405180830381858888f1935050505015156103eb57600080fd5b565b6103f5610b9d565b60005460a060020a900460ff161561040c57600080fd5b6104163384610787565b151561042157600080fd5b61042a8361080b565b60606040519081016040528033600160a060020a031681526020018381526020014267ffffffffffffffff1681525090506104658382610864565b505050565b60005433600160a060020a0390811691161461048557600080fd5b60005460a060020a900460ff161561049c57600080fd5b6000805474ff0000000000000000000000000000000000000000191660a060020a1790557f6985a02210a168e66602d3235cb6db0e70f92b3ba4d376a33c0f3d9434bff62560405160405180910390a1565b600254600160a060020a031681565b6000818152600360205260408120906105158261068f565b151561052057600080fd5b508054600160a060020a03908116903316811461053c57600080fd5b61046583826106a5565b6000818152600360205260408120819081906105618161068f565b151561056c57600080fd5b80546001820154600290920154600160a060020a039091169691955067ffffffffffffffff169350915050565b60005460a060020a900460ff16156105b057600080fd5b6105ba813461094b565b506105c53382610a80565b50565b60005433600160a060020a039081169116146105e357600080fd5b600160a060020a03811615156105f857600080fd5b600054600160a060020a0380831691167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a36000805473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a0392909216919091179055565b600081815260036020526040812061067a8161068f565b151561068557600080fd5b6001015492915050565b60020154600067ffffffffffffffff9091161190565b6106ae82610aee565b6106b88183610a80565b7fc9b961c43fe701b83ae14bfe2d7625ea85b27c33b4aae8d1fdf4b344d5ea1dbc8183604051600160a060020a03909216825260208201526040908101905180910390a15050565b600083815260036020526040908190206001810180549085905590917fb165af5b3d8c4956215e2ea9ece7fed2bd0bc65751daa3d1e627cfafa1e058aa908490879084908890518085600160a060020a0316600160a060020a0316815260200184815260200183815260200182815260200194505050505060405180910390a15050505050565b600154600090600160a060020a038085169116636352211e84846040516020015260405160e060020a63ffffffff84160281526004810191909152602401602060405180830381600087803b15156107de57600080fd5b6102c65a03f115156107ef57600080fd5b50505060405180519050600160a060020a031614905092915050565b600154600160a060020a031663b2e6ceeb8260405160e060020a63ffffffff84160281526004810191909152602401600060405180830381600087803b151561085357600080fd5b6102c65a03f1151561037d57600080fd5b600082815260036020526040902081908151815473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a0391909116178155602082015181600101556040820151600291909101805467ffffffffffffffff191667ffffffffffffffff909216919091179055507f2cd2dfcdeb2b58c4b80527e9df5e12da537fa4f6c958a4fb623a83ab74eeab638151838360200151846040015167ffffffffffffffff166040518085600160a060020a0316600160a060020a0316815260200184815260200183815260200182815260200194505050505060405180910390a15050565b600082815260036020526040812081808080806109678661068f565b151561097257600080fd5b600186015494508488101561098657600080fd5b8554600160a060020a0316935061099c89610aee565b60008511156109e6576109ae85610b33565b92508285039150600160a060020a03841682156108fc0283604051600060405180830381858888f1935050505015156109e657600080fd5b50838703600160a060020a03331681156108fc0282604051600060405180830381858888f193505050501515610a1b57600080fd5b7f5b47613bd30103b02485b799feb74a88bc18be665b667188d79e5c57b6d9ecdc848a8733604051600160a060020a03948516815260208101939093526040808401929092529092166060820152608001905180910390a15092979650505050505050565b600154600160a060020a031663a9059cbb838360405160e060020a63ffffffff8516028152600160a060020a0390921660048301526024820152604401600060405180830381600087803b1515610ad657600080fd5b6102c65a03f11515610ae757600080fd5b5050505050565b6000908152600360205260408120805473ffffffffffffffffffffffffffffffffffffffff191681556001810191909155600201805467ffffffffffffffff19169055565b6000610b4a610b43836006610b50565b6064610b86565b92915050565b600080831515610b635760009150610b7f565b50828202828482811515610b7357fe5b0414610b7b57fe5b8091505b5092915050565b6000808284811515610b9457fe5b04949350505050565b6060604051908101604090815260008083526020830181905290820152905600a165627a7a72305820f13e4d2aeb4d860fdbf00ec777500f905c8fdf6ddaa51b1c8f0d292e01005ba60029000000000000000000000000bb5ed1edeb5149af3ab43ea9c7a6963b3c1374f7
Deployed Bytecode
0x6060604052600436106100ab5763ffffffff60e060020a60003504166323edfb8981146100b85780633f4ba83a146100ce5780634896672e146100e15780635c975abb146100fa5780635fd8c710146101215780636019061b146101345780638456cb591461014d5780638da5cb5b14610160578063bd94b0051461018f578063d8f6d596146101a5578063d96a094a146101f1578063f2fde38b146101fc578063f8eb5fc51461021b575b34156100b657600080fd5b005b34156100c357600080fd5b6100b6600435610243565b34156100d957600080fd5b6100b66102b4565b34156100ec57600080fd5b6100b6600435602435610333565b341561010557600080fd5b61010d610383565b604051901515815260200160405180910390f35b341561012c57600080fd5b6100b6610393565b341561013f57600080fd5b6100b66004356024356103ed565b341561015857600080fd5b6100b661046a565b341561016b57600080fd5b6101736104ee565b604051600160a060020a03909116815260200160405180910390f35b341561019a57600080fd5b6100b66004356104fd565b34156101b057600080fd5b6101bb600435610546565b6040518084600160a060020a0316600160a060020a03168152602001838152602001828152602001935050505060405180910390f35b6100b6600435610599565b341561020757600080fd5b6100b6600160a060020a03600435166105c8565b341561022657600080fd5b610231600435610663565b60405190815260200160405180910390f35b6000805460a060020a900460ff16151561025c57600080fd5b60005433600160a060020a0390811691161461027757600080fd5b50600081815260036020526040902061028f8161068f565b151561029a57600080fd5b80546102b0908390600160a060020a03166106a5565b5050565b60005433600160a060020a039081169116146102cf57600080fd5b60005460a060020a900460ff1615156102e757600080fd5b6000805474ff0000000000000000000000000000000000000000191690557f7805862f689e2f13df9f062ff482ad3ad112aca9e0847911ed832e158c525b3360405160405180910390a1565b60008281526003602052604081209061034b8261068f565b151561035657600080fd5b508054600160a060020a03908116903316811461037257600080fd5b61037d848483610700565b50505050565b60005460a060020a900460ff1681565b60025433600160a060020a039081169116146103ae57600080fd5b33600160a060020a03166108fc30600160a060020a0316319081150290604051600060405180830381858888f1935050505015156103eb57600080fd5b565b6103f5610b9d565b60005460a060020a900460ff161561040c57600080fd5b6104163384610787565b151561042157600080fd5b61042a8361080b565b60606040519081016040528033600160a060020a031681526020018381526020014267ffffffffffffffff1681525090506104658382610864565b505050565b60005433600160a060020a0390811691161461048557600080fd5b60005460a060020a900460ff161561049c57600080fd5b6000805474ff0000000000000000000000000000000000000000191660a060020a1790557f6985a02210a168e66602d3235cb6db0e70f92b3ba4d376a33c0f3d9434bff62560405160405180910390a1565b600254600160a060020a031681565b6000818152600360205260408120906105158261068f565b151561052057600080fd5b508054600160a060020a03908116903316811461053c57600080fd5b61046583826106a5565b6000818152600360205260408120819081906105618161068f565b151561056c57600080fd5b80546001820154600290920154600160a060020a039091169691955067ffffffffffffffff169350915050565b60005460a060020a900460ff16156105b057600080fd5b6105ba813461094b565b506105c53382610a80565b50565b60005433600160a060020a039081169116146105e357600080fd5b600160a060020a03811615156105f857600080fd5b600054600160a060020a0380831691167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a36000805473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a0392909216919091179055565b600081815260036020526040812061067a8161068f565b151561068557600080fd5b6001015492915050565b60020154600067ffffffffffffffff9091161190565b6106ae82610aee565b6106b88183610a80565b7fc9b961c43fe701b83ae14bfe2d7625ea85b27c33b4aae8d1fdf4b344d5ea1dbc8183604051600160a060020a03909216825260208201526040908101905180910390a15050565b600083815260036020526040908190206001810180549085905590917fb165af5b3d8c4956215e2ea9ece7fed2bd0bc65751daa3d1e627cfafa1e058aa908490879084908890518085600160a060020a0316600160a060020a0316815260200184815260200183815260200182815260200194505050505060405180910390a15050505050565b600154600090600160a060020a038085169116636352211e84846040516020015260405160e060020a63ffffffff84160281526004810191909152602401602060405180830381600087803b15156107de57600080fd5b6102c65a03f115156107ef57600080fd5b50505060405180519050600160a060020a031614905092915050565b600154600160a060020a031663b2e6ceeb8260405160e060020a63ffffffff84160281526004810191909152602401600060405180830381600087803b151561085357600080fd5b6102c65a03f1151561037d57600080fd5b600082815260036020526040902081908151815473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a0391909116178155602082015181600101556040820151600291909101805467ffffffffffffffff191667ffffffffffffffff909216919091179055507f2cd2dfcdeb2b58c4b80527e9df5e12da537fa4f6c958a4fb623a83ab74eeab638151838360200151846040015167ffffffffffffffff166040518085600160a060020a0316600160a060020a0316815260200184815260200183815260200182815260200194505050505060405180910390a15050565b600082815260036020526040812081808080806109678661068f565b151561097257600080fd5b600186015494508488101561098657600080fd5b8554600160a060020a0316935061099c89610aee565b60008511156109e6576109ae85610b33565b92508285039150600160a060020a03841682156108fc0283604051600060405180830381858888f1935050505015156109e657600080fd5b50838703600160a060020a03331681156108fc0282604051600060405180830381858888f193505050501515610a1b57600080fd5b7f5b47613bd30103b02485b799feb74a88bc18be665b667188d79e5c57b6d9ecdc848a8733604051600160a060020a03948516815260208101939093526040808401929092529092166060820152608001905180910390a15092979650505050505050565b600154600160a060020a031663a9059cbb838360405160e060020a63ffffffff8516028152600160a060020a0390921660048301526024820152604401600060405180830381600087803b1515610ad657600080fd5b6102c65a03f11515610ae757600080fd5b5050505050565b6000908152600360205260408120805473ffffffffffffffffffffffffffffffffffffffff191681556001810191909155600201805467ffffffffffffffff19169055565b6000610b4a610b43836006610b50565b6064610b86565b92915050565b600080831515610b635760009150610b7f565b50828202828482811515610b7357fe5b0414610b7b57fe5b8091505b5092915050565b6000808284811515610b9457fe5b04949350505050565b6060604051908101604090815260008083526020830181905290820152905600a165627a7a72305820f13e4d2aeb4d860fdbf00ec777500f905c8fdf6ddaa51b1c8f0d292e01005ba60029
Constructor Arguments (ABI-Encoded and is the last bytes of the Contract Creation Code above)
000000000000000000000000bb5ed1edeb5149af3ab43ea9c7a6963b3c1374f7
-----Decoded View---------------
Arg [0] : _ccAddress (address): 0xbb5Ed1EdeB5149AF3ab43ea9c7a6963b3C1374F7
-----Encoded View---------------
1 Constructor Arguments found :
Arg [0] : 000000000000000000000000bb5ed1edeb5149af3ab43ea9c7a6963b3c1374f7
Swarm Source
bzzr://f13e4d2aeb4d860fdbf00ec777500f905c8fdf6ddaa51b1c8f0d292e01005ba6
Loading...
Loading
Loading...
Loading
Net Worth in USD
$913.66
Net Worth in ETH
0.4578
Token Allocations
ETH
100.00%
Multichain Portfolio | 33 Chains
| Chain | Token | Portfolio % | Price | Amount | Value |
|---|---|---|---|---|---|
| ETH | 100.00% | $1,995.76 | 0.4578 | $913.66 |
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.