Latest 25 from a total of 59 transactions
| Transaction Hash |
Method
|
Block
|
From
|
|
To
|
||||
|---|---|---|---|---|---|---|---|---|---|
| Setup | 11283355 | 1959 days ago | IN | 0 ETH | 0.00167375 | ||||
| Withdraw Eth Fro... | 11283334 | 1959 days ago | IN | 0 ETH | 0.00207721 | ||||
| Setup | 11283324 | 1959 days ago | IN | 0 ETH | 0.00234023 | ||||
| Withdraw Eth Fro... | 6764728 | 2684 days ago | IN | 0 ETH | 0.00013354 | ||||
| Cutie Id To Auct... | 6763377 | 2684 days ago | IN | 0 ETH | 0.00011568 | ||||
| Withdraw Eth Fro... | 6763066 | 2684 days ago | IN | 0 ETH | 0.00013354 | ||||
| Cutie Id To Auct... | 6763057 | 2684 days ago | IN | 0 ETH | 0.00013881 | ||||
| Cancel Active Au... | 6311270 | 2758 days ago | IN | 0 ETH | 0.000145 | ||||
| Bid | 6294187 | 2761 days ago | IN | 6.655 ETH | 0.00115696 | ||||
| Bid | 6291771 | 2761 days ago | IN | 2.92307565 ETH | 0.00012095 | ||||
| Cancel Active Au... | 6265105 | 2766 days ago | IN | 0 ETH | 0.00010626 | ||||
| Bid | 6248894 | 2768 days ago | IN | 1.0717944 ETH | 0.00010583 | ||||
| Cancel Active Au... | 6213081 | 2774 days ago | IN | 0 ETH | 0.000085 | ||||
| Cancel Active Au... | 6213062 | 2774 days ago | IN | 0 ETH | 0.000085 | ||||
| Cancel Active Au... | 6213059 | 2774 days ago | IN | 0 ETH | 0.000085 | ||||
| Cancel Active Au... | 6199184 | 2777 days ago | IN | 0 ETH | 0.00007975 | ||||
| Bid | 6182508 | 2780 days ago | IN | 0.007 ETH | 0.00011271 | ||||
| Bid | 6132999 | 2788 days ago | IN | 0.00640918 ETH | 0.00085878 | ||||
| Bid | 6132997 | 2788 days ago | IN | 0.008 ETH | 0.00155654 | ||||
| Bid | 6132995 | 2788 days ago | IN | 0.006 ETH | 0.0022543 | ||||
| Bid | 6125902 | 2789 days ago | IN | 0.13791578 ETH | 0.0002198 | ||||
| Bid | 6110645 | 2792 days ago | IN | 0.003 ETH | 0.00418911 | ||||
| Cancel Active Au... | 6103542 | 2793 days ago | IN | 0 ETH | 0.00011476 | ||||
| Cancel Active Au... | 6103363 | 2793 days ago | IN | 0 ETH | 0.00009775 | ||||
| Cancel Active Au... | 6103352 | 2793 days ago | IN | 0 ETH | 0.00010838 |
Latest 15 internal transactions
Advanced mode:
| Parent Transaction Hash | Method | Block |
From
|
|
To
|
||
|---|---|---|---|---|---|---|---|
| - | 11283334 | 1959 days ago | 11.20994524 ETH | ||||
| Transfer | 6182508 | 2780 days ago | 0.00672 ETH | ||||
| Transfer | 6132999 | 2788 days ago | 0.00615256 ETH | ||||
| Transfer | 6132997 | 2788 days ago | 0.00768 ETH | ||||
| Transfer | 6132995 | 2788 days ago | 0.00576 ETH | ||||
| Transfer | 6125902 | 2789 days ago | 0.13239337 ETH | ||||
| Transfer | 6110645 | 2792 days ago | 0.00288 ETH | ||||
| Transfer | 6099967 | 2794 days ago | 0.00253643 ETH | ||||
| Transfer | 6091531 | 2795 days ago | 0.00217295 ETH | ||||
| Transfer | 6091343 | 2795 days ago | 0.00303281 ETH | ||||
| Transfer | 6088548 | 2795 days ago | 0.00186872 ETH | ||||
| Transfer | 6087656 | 2796 days ago | 0.00790222 ETH | ||||
| Transfer | 6087585 | 2796 days ago | 0.0048 ETH | ||||
| Transfer | 6082712 | 2796 days ago | 0.0479692 ETH | ||||
| Transfer | 6082707 | 2796 days ago | 0.06719388 ETH |
Loading...
Loading
Loading...
Loading
Cross-Chain Transactions
Loading...
Loading
Contract Name:
SaleMarket
Compiler Version
v0.4.24+commit.e67f0147
Optimization Enabled:
Yes with 200 runs
Other Settings:
default evmVersion
Contract Source Code (Solidity)
/**
*Submitted for verification at Etherscan.io on 2018-08-03
*/
pragma solidity ^0.4.24;
contract CutieCoreInterface
{
function isCutieCore() pure public returns (bool);
function transferFrom(address _from, address _to, uint256 _cutieId) external;
function transfer(address _to, uint256 _cutieId) external;
function ownerOf(uint256 _cutieId)
external
view
returns (address owner);
function getCutie(uint40 _id)
external
view
returns (
uint256 genes,
uint40 birthTime,
uint40 cooldownEndTime,
uint40 momId,
uint40 dadId,
uint16 cooldownIndex,
uint16 generation
);
function getGenes(uint40 _id)
public
view
returns (
uint256 genes
);
function getCooldownEndTime(uint40 _id)
public
view
returns (
uint40 cooldownEndTime
);
function getCooldownIndex(uint40 _id)
public
view
returns (
uint16 cooldownIndex
);
function getGeneration(uint40 _id)
public
view
returns (
uint16 generation
);
function getOptional(uint40 _id)
public
view
returns (
uint64 optional
);
function changeGenes(
uint40 _cutieId,
uint256 _genes)
public;
function changeCooldownEndTime(
uint40 _cutieId,
uint40 _cooldownEndTime)
public;
function changeCooldownIndex(
uint40 _cutieId,
uint16 _cooldownIndex)
public;
function changeOptional(
uint40 _cutieId,
uint64 _optional)
public;
function changeGeneration(
uint40 _cutieId,
uint16 _generation)
public;
}
pragma solidity ^0.4.20;
pragma solidity ^0.4.24;
/**
* @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.
*/
constructor() 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));
emit 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;
emit Pause();
}
/**
* @dev called by the owner to unpause, returns to normal state
*/
function unpause() onlyOwner whenPaused public {
paused = false;
emit Unpause();
}
}
pragma solidity ^0.4.24;
/// @title Auction Market for Blockchain Cuties.
/// @author https://BlockChainArchitect.io
contract MarketInterface
{
function withdrawEthFromBalance() external;
function createAuction(uint40 _cutieId, uint128 _startPrice, uint128 _endPrice, uint40 _duration, address _seller) public payable;
function bid(uint40 _cutieId) public payable;
function cancelActiveAuctionWhenPaused(uint40 _cutieId) public;
function getAuctionInfo(uint40 _cutieId)
public
view
returns
(
address seller,
uint128 startPrice,
uint128 endPrice,
uint40 duration,
uint40 startedAt,
uint128 featuringFee,
bool tokensAllowed
);
}
pragma solidity ^0.4.24;
// https://etherscan.io/address/0x4118d7f757ad5893b8fa2f95e067994e1f531371#code
interface ERC20 {
/**
* Transfer tokens from other address
*
* Send `_value` tokens to `_to` on behalf of `_from`
*
* @param _from The address of the sender
* @param _to The address of the recipient
* @param _value the amount to send
*/
function transferFrom(address _from, address _to, uint256 _value) external returns (bool success);
function approveAndCall(address _spender, uint256 _value, bytes _extraData) external
returns (bool success);
/**
* Transfer tokens
*
* Send `_value` tokens to `_to` from your account
*
* @param _to The address of the recipient
* @param _value the amount to send
*/
function transfer(address _to, uint256 _value) external;
/// @notice Count all tokens assigned to an owner
function balanceOf(address _owner) external view returns (uint256);
}
pragma solidity ^0.4.24;
// https://etherscan.io/address/0x3127be52acba38beab6b4b3a406dc04e557c037c#code
contract PriceOracleInterface {
// How much TOKENs you get for 1 ETH, multiplied by 10^18
uint256 public ETHPrice;
}
pragma solidity ^0.4.24;
interface TokenRecipientInterface
{
function receiveApproval(address _from, uint256 _value, address _token, bytes _extraData) external;
}
/// @title Auction Market for Blockchain Cuties.
/// @author https://BlockChainArchitect.io
contract Market is MarketInterface, Pausable, TokenRecipientInterface
{
// Shows the auction on an Cutie Token
struct Auction {
// Price (in wei or tokens) at the beginning of auction
uint128 startPrice;
// Price (in wei or tokens) at the end of auction
uint128 endPrice;
// Current owner of Token
address seller;
// Auction duration in seconds
uint40 duration;
// Time when auction started
// NOTE: 0 if this auction has been concluded
uint40 startedAt;
// Featuring fee (in wei, optional)
uint128 featuringFee;
// is it allowed to bid with erc20 tokens
bool tokensAllowed;
}
// Reference to contract that tracks ownership
CutieCoreInterface public coreContract;
// Cut owner takes on each auction, in basis points - 1/100 of a per cent.
// Values 0-10,000 map to 0%-100%
uint16 public ownerFee;
// Map from token ID to their corresponding auction.
mapping (uint40 => Auction) public cutieIdToAuction;
mapping (address => PriceOracleInterface) public priceOracle;
address operatorAddress;
event AuctionCreated(uint40 indexed cutieId, uint128 startPrice, uint128 endPrice, uint40 duration, uint128 fee, bool tokensAllowed);
event AuctionSuccessful(uint40 indexed cutieId, uint128 totalPriceWei, address indexed winner);
event AuctionSuccessfulForToken(uint40 indexed cutieId, uint128 totalPriceWei, address indexed winner, uint128 priceInTokens, address indexed token);
event AuctionCancelled(uint40 indexed cutieId);
modifier onlyOperator() {
require(msg.sender == operatorAddress || msg.sender == owner);
_;
}
function setOperator(address _newOperator) public onlyOwner {
require(_newOperator != address(0));
operatorAddress = _newOperator;
}
/// @dev disables sending fund to this contract
function() external {}
modifier canBeStoredIn128Bits(uint256 _value)
{
require(_value <= 0xFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF);
_;
}
// @dev Adds to the list of open auctions and fires the
// AuctionCreated event.
// @param _cutieId The token ID is to be put on auction.
// @param _auction To add an auction.
// @param _fee Amount of money to feature auction
function _addAuction(uint40 _cutieId, Auction _auction) internal
{
// Require that all auctions have a duration of
// at least one minute. (Keeps our math from getting hairy!)
require(_auction.duration >= 1 minutes);
cutieIdToAuction[_cutieId] = _auction;
emit AuctionCreated(
_cutieId,
_auction.startPrice,
_auction.endPrice,
_auction.duration,
_auction.featuringFee,
_auction.tokensAllowed
);
}
// @dev Returns true if the token is claimed by the claimant.
// @param _claimant - Address claiming to own the token.
function _isOwner(address _claimant, uint256 _cutieId) internal view returns (bool)
{
return (coreContract.ownerOf(_cutieId) == _claimant);
}
// @dev Transfers the token owned by this contract to another address.
// Returns true when the transfer succeeds.
// @param _receiver - Address to transfer token to.
// @param _cutieId - Token ID to transfer.
function _transfer(address _receiver, uint40 _cutieId) internal
{
// it will throw if transfer fails
coreContract.transfer(_receiver, _cutieId);
}
// @dev Escrows the token and assigns ownership to this contract.
// Throws if the escrow fails.
// @param _owner - Current owner address of token to escrow.
// @param _cutieId - Token ID the approval of which is to be verified.
function _escrow(address _owner, uint40 _cutieId) internal
{
// it will throw if transfer fails
coreContract.transferFrom(_owner, this, _cutieId);
}
// @dev just cancel auction.
function _cancelActiveAuction(uint40 _cutieId, address _seller) internal
{
_removeAuction(_cutieId);
_transfer(_seller, _cutieId);
emit AuctionCancelled(_cutieId);
}
// @dev Calculates the price and transfers winnings.
// Does not transfer token ownership.
function _bid(uint40 _cutieId, uint128 _bidAmount)
internal
returns (uint128)
{
// Get a reference to the auction struct
Auction storage auction = cutieIdToAuction[_cutieId];
require(_isOnAuction(auction));
// Check that bid > current price
uint128 price = _currentPrice(auction);
require(_bidAmount >= price);
// Provide a reference to the seller before the auction struct is deleted.
address seller = auction.seller;
_removeAuction(_cutieId);
// Transfer proceeds to seller (if there are any!)
if (price > 0 && seller != address(coreContract)) {
uint128 fee = _computeFee(price);
uint128 sellerValue = price - fee;
seller.transfer(sellerValue);
}
emit AuctionSuccessful(_cutieId, price, msg.sender);
return price;
}
// @dev Removes from the list of open auctions.
// @param _cutieId - ID of token on auction.
function _removeAuction(uint40 _cutieId) internal
{
delete cutieIdToAuction[_cutieId];
}
// @dev Returns true if the token is on auction.
// @param _auction - Auction to check.
function _isOnAuction(Auction storage _auction) internal view returns (bool)
{
return (_auction.startedAt > 0);
}
// @dev calculate current price of auction.
// When testing, make this function public and turn on
// `Current price calculation` test suite.
function _computeCurrentPrice(
uint128 _startPrice,
uint128 _endPrice,
uint40 _duration,
uint40 _secondsPassed
)
internal
pure
returns (uint128)
{
if (_secondsPassed >= _duration) {
return _endPrice;
} else {
int256 totalPriceChange = int256(_endPrice) - int256(_startPrice);
int256 currentPriceChange = totalPriceChange * int256(_secondsPassed) / int256(_duration);
uint128 currentPrice = _startPrice + uint128(currentPriceChange);
return currentPrice;
}
}
// @dev return current price of token.
function _currentPrice(Auction storage _auction)
internal
view
returns (uint128)
{
uint40 secondsPassed = 0;
uint40 timeNow = uint40(now);
if (timeNow > _auction.startedAt) {
secondsPassed = timeNow - _auction.startedAt;
}
return _computeCurrentPrice(
_auction.startPrice,
_auction.endPrice,
_auction.duration,
secondsPassed
);
}
// @dev Calculates owner's cut of a sale.
// @param _price - Sale price of cutie.
function _computeFee(uint128 _price) internal view returns (uint128)
{
return _price * ownerFee / 10000;
}
// @dev Remove all Ether from the contract with the owner's cuts. Also, remove any Ether sent directly to the contract address.
// Transfers to the token contract, but can be called by
// the owner or the token contract.
function withdrawEthFromBalance() external
{
address coreAddress = address(coreContract);
require(
msg.sender == owner ||
msg.sender == coreAddress
);
coreAddress.transfer(address(this).balance);
}
// @dev create and begin new auction.
function createAuction(uint40 _cutieId, uint128 _startPrice, uint128 _endPrice, uint40 _duration, address _seller)
public whenNotPaused payable
{
require(_isOwner(msg.sender, _cutieId));
_escrow(msg.sender, _cutieId);
bool allowTokens = _duration < 0x8000000000; // first bit of duration is boolean flag (1 to disable tokens)
_duration = _duration % 0x8000000000; // clear flag from duration
Auction memory auction = Auction(
_startPrice,
_endPrice,
_seller,
_duration,
uint40(now),
uint128(msg.value),
allowTokens
);
_addAuction(_cutieId, auction);
}
// @dev Set the reference to cutie ownership contract. Verify the owner's fee.
// @param fee should be between 0-10,000.
function setup(address _coreContractAddress, uint16 _fee) public onlyOwner
{
require(_fee <= 10000);
ownerFee = _fee;
CutieCoreInterface candidateContract = CutieCoreInterface(_coreContractAddress);
require(candidateContract.isCutieCore());
coreContract = candidateContract;
}
// @dev Set the owner's fee.
// @param fee should be between 0-10,000.
function setFee(uint16 _fee) public onlyOwner
{
require(_fee <= 10000);
ownerFee = _fee;
}
// @dev bid on auction. Complete it and transfer ownership of cutie if enough ether was given.
function bid(uint40 _cutieId) public payable whenNotPaused canBeStoredIn128Bits(msg.value)
{
// _bid throws if something failed.
_bid(_cutieId, uint128(msg.value));
_transfer(msg.sender, _cutieId);
}
function getPriceInToken(ERC20 _tokenContract, uint128 priceWei)
public
view
returns (uint128)
{
PriceOracleInterface oracle = priceOracle[address(_tokenContract)];
require(address(oracle) != address(0));
uint256 ethPerToken = oracle.ETHPrice();
return uint128(uint256(priceWei) * ethPerToken / 1 ether);
}
function getCutieId(bytes _extraData) internal returns (uint40)
{
return
uint40(_extraData[0]) +
uint40(_extraData[1]) * 0x100 +
uint40(_extraData[2]) * 0x10000 +
uint40(_extraData[3]) * 0x100000 +
uint40(_extraData[4]) * 0x10000000;
}
// https://github.com/BitGuildPlatform/Documentation/blob/master/README.md#2-required-game-smart-contract-changes
// Function that is called when trying to use PLAT for payments from approveAndCall
function receiveApproval(address _sender, uint256 _value, address _tokenContract, bytes _extraData)
external
canBeStoredIn128Bits(_value)
whenNotPaused
{
ERC20 tokenContract = ERC20(_tokenContract);
require(_extraData.length == 5); // 40 bits
uint40 cutieId = getCutieId(_extraData);
// Get a reference to the auction struct
Auction storage auction = cutieIdToAuction[cutieId];
require(auction.tokensAllowed); // buy for token is allowed
require(_isOnAuction(auction));
uint128 priceWei = _currentPrice(auction);
uint128 priceInTokens = getPriceInToken(tokenContract, priceWei);
// Check that bid > current price
//require(_value >= priceInTokens);
// Provide a reference to the seller before the auction struct is deleted.
address seller = auction.seller;
_removeAuction(cutieId);
// Transfer proceeds to seller (if there are any!)
if (priceInTokens > 0) {
uint128 fee = _computeFee(priceInTokens);
uint128 sellerValue = priceInTokens - fee;
require(tokenContract.transferFrom(_sender, address(this), priceInTokens));
tokenContract.transfer(seller, sellerValue);
}
emit AuctionSuccessfulForToken(cutieId, priceWei, _sender, priceInTokens, _tokenContract);
_transfer(_sender, cutieId);
}
// @dev Returns auction info for a token on auction.
// @param _cutieId - ID of token on auction.
function getAuctionInfo(uint40 _cutieId)
public
view
returns
(
address seller,
uint128 startPrice,
uint128 endPrice,
uint40 duration,
uint40 startedAt,
uint128 featuringFee,
bool tokensAllowed
) {
Auction storage auction = cutieIdToAuction[_cutieId];
require(_isOnAuction(auction));
return (
auction.seller,
auction.startPrice,
auction.endPrice,
auction.duration,
auction.startedAt,
auction.featuringFee,
auction.tokensAllowed
);
}
// @dev Returns auction info for a token on auction.
// @param _cutieId - ID of token on auction.
function isOnAuction(uint40 _cutieId)
public
view
returns (bool)
{
return cutieIdToAuction[_cutieId].startedAt > 0;
}
/*
/// @dev Import cuties from previous version of Core contract.
/// @param _oldAddress Old core contract address
/// @param _fromIndex (inclusive)
/// @param _toIndex (inclusive)
function migrate(address _oldAddress, uint40 _fromIndex, uint40 _toIndex) public onlyOwner whenPaused
{
Market old = Market(_oldAddress);
for (uint40 i = _fromIndex; i <= _toIndex; i++)
{
if (coreContract.ownerOf(i) == _oldAddress)
{
address seller;
uint128 startPrice;
uint128 endPrice;
uint40 duration;
uint40 startedAt;
uint128 featuringFee;
(seller, startPrice, endPrice, duration, startedAt, featuringFee) = old.getAuctionInfo(i);
Auction memory auction = Auction({
seller: seller,
startPrice: startPrice,
endPrice: endPrice,
duration: duration,
startedAt: startedAt,
featuringFee: featuringFee
});
_addAuction(i, auction);
}
}
}*/
// @dev Returns the current price of an auction.
function getCurrentPrice(uint40 _cutieId)
public
view
returns (uint128)
{
Auction storage auction = cutieIdToAuction[_cutieId];
require(_isOnAuction(auction));
return _currentPrice(auction);
}
// @dev Cancels unfinished auction and returns token to owner.
// Can be called when contract is paused.
function cancelActiveAuction(uint40 _cutieId) public
{
Auction storage auction = cutieIdToAuction[_cutieId];
require(_isOnAuction(auction));
address seller = auction.seller;
require(msg.sender == seller);
_cancelActiveAuction(_cutieId, seller);
}
// @dev Cancels auction when contract is on pause. Option is available only to owners in urgent situations. Tokens returned to seller.
// Used on Core contract upgrade.
function cancelActiveAuctionWhenPaused(uint40 _cutieId) whenPaused onlyOwner public
{
Auction storage auction = cutieIdToAuction[_cutieId];
require(_isOnAuction(auction));
_cancelActiveAuction(_cutieId, auction.seller);
}
// @dev Cancels unfinished auction and returns token to owner.
// Can be called when contract is paused.
function cancelCreatorAuction(uint40 _cutieId) public onlyOperator
{
Auction storage auction = cutieIdToAuction[_cutieId];
require(_isOnAuction(auction));
address seller = auction.seller;
require(seller == address(coreContract));
_cancelActiveAuction(_cutieId, msg.sender);
}
// @dev Transfers to _withdrawToAddress all tokens controlled by
// contract _tokenContract.
function withdrawTokenFromBalance(ERC20 _tokenContract, address _withdrawToAddress) external
{
address coreAddress = address(coreContract);
require(
msg.sender == owner ||
msg.sender == operatorAddress ||
msg.sender == coreAddress
);
uint256 balance = _tokenContract.balanceOf(address(this));
_tokenContract.transfer(_withdrawToAddress, balance);
}
/// @dev Allow buy cuties for token
function addToken(ERC20 _tokenContract, PriceOracleInterface _priceOracle) external onlyOwner
{
priceOracle[address(_tokenContract)] = _priceOracle;
}
/// @dev Disallow buy cuties for token
function removeToken(ERC20 _tokenContract) external onlyOwner
{
delete priceOracle[address(_tokenContract)];
}
}
/// @title Auction market for cuties sale
/// @author https://BlockChainArchitect.io
contract SaleMarket is Market
{
// @dev Sanity check reveals that the
// auction in our setSaleAuctionAddress() call is right.
bool public isSaleMarket = true;
// @dev create and start a new auction
// @param _cutieId - ID of cutie to auction, sender must be owner.
// @param _startPrice - Price of item (in wei) at the beginning of auction.
// @param _endPrice - Price of item (in wei) at the end of auction.
// @param _duration - Length of auction (in seconds).
// @param _seller - Seller
function createAuction(
uint40 _cutieId,
uint128 _startPrice,
uint128 _endPrice,
uint40 _duration,
address _seller
)
public
payable
{
require(msg.sender == address(coreContract));
_escrow(_seller, _cutieId);
bool allowTokens = _duration < 0x8000000000; // first bit of duration is boolean flag (1 to disable tokens)
_duration = _duration % 0x8000000000; // clear flag from duration
Auction memory auction = Auction(
_startPrice,
_endPrice,
_seller,
_duration,
uint40(now),
uint128(msg.value),
allowTokens
);
_addAuction(_cutieId, auction);
}
// @dev LastSalePrice is updated if seller is the token contract.
// Otherwise, default bid method is used.
function bid(uint40 _cutieId)
public
payable
canBeStoredIn128Bits(msg.value)
{
// _bid verifies token ID size
_bid(_cutieId, uint128(msg.value));
_transfer(msg.sender, _cutieId);
}
}Contract Security Audit
- No Contract Security Audit Submitted- Submit Audit Here
Contract ABI
API[{"constant":true,"inputs":[{"name":"_cutieId","type":"uint40"}],"name":"isOnAuction","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"","type":"address"}],"name":"priceOracle","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"_cutieId","type":"uint40"}],"name":"cancelCreatorAuction","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[],"name":"unpause","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"_tokenContract","type":"address"},{"name":"_priceOracle","type":"address"}],"name":"addToken","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":"_tokenContract","type":"address"}],"name":"removeToken","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"isSaleMarket","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[],"name":"withdrawEthFromBalance","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[{"name":"_cutieId","type":"uint40"}],"name":"getCurrentPrice","outputs":[{"name":"","type":"uint128"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"","type":"uint40"}],"name":"cutieIdToAuction","outputs":[{"name":"startPrice","type":"uint128"},{"name":"endPrice","type":"uint128"},{"name":"seller","type":"address"},{"name":"duration","type":"uint40"},{"name":"startedAt","type":"uint40"},{"name":"featuringFee","type":"uint128"},{"name":"tokensAllowed","type":"bool"}],"payable":false,"stateMutability":"view","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":"_fee","type":"uint16"}],"name":"setFee","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"_sender","type":"address"},{"name":"_value","type":"uint256"},{"name":"_tokenContract","type":"address"},{"name":"_extraData","type":"bytes"}],"name":"receiveApproval","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"_cutieId","type":"uint40"}],"name":"cancelActiveAuction","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[{"name":"_cutieId","type":"uint40"}],"name":"getAuctionInfo","outputs":[{"name":"seller","type":"address"},{"name":"startPrice","type":"uint128"},{"name":"endPrice","type":"uint128"},{"name":"duration","type":"uint40"},{"name":"startedAt","type":"uint40"},{"name":"featuringFee","type":"uint128"},{"name":"tokensAllowed","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"_tokenContract","type":"address"},{"name":"priceWei","type":"uint128"}],"name":"getPriceInToken","outputs":[{"name":"","type":"uint128"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"_cutieId","type":"uint40"}],"name":"cancelActiveAuctionWhenPaused","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"_newOperator","type":"address"}],"name":"setOperator","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"name":"_cutieId","type":"uint40"}],"name":"bid","outputs":[],"payable":true,"stateMutability":"payable","type":"function"},{"constant":false,"inputs":[{"name":"_cutieId","type":"uint40"},{"name":"_startPrice","type":"uint128"},{"name":"_endPrice","type":"uint128"},{"name":"_duration","type":"uint40"},{"name":"_seller","type":"address"}],"name":"createAuction","outputs":[],"payable":true,"stateMutability":"payable","type":"function"},{"constant":false,"inputs":[{"name":"_tokenContract","type":"address"},{"name":"_withdrawToAddress","type":"address"}],"name":"withdrawTokenFromBalance","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"ownerFee","outputs":[{"name":"","type":"uint16"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"_coreContractAddress","type":"address"},{"name":"_fee","type":"uint16"}],"name":"setup","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"coreContract","outputs":[{"name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"newOwner","type":"address"}],"name":"transferOwnership","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"payable":false,"stateMutability":"nonpayable","type":"fallback"},{"anonymous":false,"inputs":[{"indexed":true,"name":"cutieId","type":"uint40"},{"indexed":false,"name":"startPrice","type":"uint128"},{"indexed":false,"name":"endPrice","type":"uint128"},{"indexed":false,"name":"duration","type":"uint40"},{"indexed":false,"name":"fee","type":"uint128"},{"indexed":false,"name":"tokensAllowed","type":"bool"}],"name":"AuctionCreated","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"cutieId","type":"uint40"},{"indexed":false,"name":"totalPriceWei","type":"uint128"},{"indexed":true,"name":"winner","type":"address"}],"name":"AuctionSuccessful","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"cutieId","type":"uint40"},{"indexed":false,"name":"totalPriceWei","type":"uint128"},{"indexed":true,"name":"winner","type":"address"},{"indexed":false,"name":"priceInTokens","type":"uint128"},{"indexed":true,"name":"token","type":"address"}],"name":"AuctionSuccessfulForToken","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"cutieId","type":"uint40"}],"name":"AuctionCancelled","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
6080604052600080546004805460a060020a60ff02191674010000000000000000000000000000000000000000179055600160a860020a03191633179055611abc8061004c6000396000f3006080604052600436106101455763ffffffff60e060020a6000350416632177885d81146101545780632951f1b21461018757806330d9161d146101c45780633f4ba83a146101e55780635476bd72146101fa5780635c975abb146102215780635fa7b584146102365780636066b06614610257578063776247c41461026c5780637ea310d41461028157806381baab24146102bc5780638456cb59146103355780638da5cb5b1461034a5780638e0055531461035f5780638f4ffcb11461037b57806398c9faac146103b35780639ccaec98146103d2578063a01da7b21461044a578063b2fb3b9014610477578063b3ab15fb14610496578063c170fd54146104b7578063c1d1faf3146104c9578063cda8c71514610502578063d5b2a01a14610529578063e410a0c614610555578063e80db5db1461057d578063f2fde38b14610592575b34801561015157600080fd5b50005b34801561016057600080fd5b5061017364ffffffffff600435166105b3565b604080519115158252519081900360200190f35b34801561019357600080fd5b506101a8600160a060020a03600435166105dc565b60408051600160a060020a039092168252519081900360200190f35b3480156101d057600080fd5b506101e364ffffffffff600435166105f7565b005b3480156101f157600080fd5b506101e3610686565b34801561020657600080fd5b506101e3600160a060020a03600435811690602435166106fc565b34801561022d57600080fd5b5061017361074e565b34801561024257600080fd5b506101e3600160a060020a036004351661075e565b34801561026357600080fd5b506101736107a9565b34801561027857600080fd5b506101e36107b9565b34801561028d57600080fd5b506102a064ffffffffff60043516610826565b604080516001608060020a039092168252519081900360200190f35b3480156102c857600080fd5b506102db64ffffffffff60043516610860565b604080516001608060020a0398891681529688166020880152600160a060020a039095168686015264ffffffffff9384166060870152919092166080850152931660a083015291151560c082015290519081900360e00190f35b34801561034157600080fd5b506101e36108d3565b34801561035657600080fd5b506101a861094e565b34801561036b57600080fd5b506101e361ffff6004351661095d565b34801561038757600080fd5b506101e360048035600160a060020a0390811691602480359260443516916064359182019101356109ba565b3480156103bf57600080fd5b506101e364ffffffffff60043516610cc5565b3480156103de57600080fd5b506103f164ffffffffff60043516610d15565b60408051600160a060020a0390981688526001608060020a0396871660208901529486168786015264ffffffffff9384166060880152919092166080860152921660a084015290151560c0830152519081900360e00190f35b34801561045657600080fd5b506102a0600160a060020a03600435166001608060020a0360243516610dbc565b34801561048357600080fd5b506101e364ffffffffff60043516610e71565b3480156104a257600080fd5b506101e3600160a060020a0360043516610ee5565b6101e364ffffffffff60043516610f40565b6101e364ffffffffff6004358116906001608060020a036024358116916044359091169060643516600160a060020a0360843516610f6a565b34801561050e57600080fd5b506101e3600160a060020a0360043581169060243516611028565b34801561053557600080fd5b5061053e61118a565b6040805161ffff9092168252519081900360200190f35b34801561056157600080fd5b506101e3600160a060020a036004351661ffff6024351661119b565b34801561058957600080fd5b506101a861128c565b34801561059e57600080fd5b506101e3600160a060020a036004351661129b565b64ffffffffff90811660009081526002602052604081206001015460c860020a90049091161190565b600360205260009081526040902054600160a060020a031681565b6004546000908190600160a060020a031633148061061f5750600054600160a060020a031633145b151561062a57600080fd5b64ffffffffff83166000908152600260205260409020915061064b8261132f565b151561065657600080fd5b506001808201549054600160a060020a039182169116811461067757600080fd5b6106818333611348565b505050565b600054600160a060020a0316331461069d57600080fd5b60005460a060020a900460ff1615156106b557600080fd5b6000805474ff0000000000000000000000000000000000000000191681556040517f7805862f689e2f13df9f062ff482ad3ad112aca9e0847911ed832e158c525b339190a1565b600054600160a060020a0316331461071357600080fd5b600160a060020a039182166000908152600360205260409020805473ffffffffffffffffffffffffffffffffffffffff191691909216179055565b60005460a060020a900460ff1681565b600054600160a060020a0316331461077557600080fd5b600160a060020a03166000908152600360205260409020805473ffffffffffffffffffffffffffffffffffffffff19169055565b60045460a060020a900460ff1681565b600154600054600160a060020a0391821691163314806107e1575033600160a060020a038216145b15156107ec57600080fd5b604051600160a060020a03821690303180156108fc02916000818181858888f19350505050158015610822573d6000803e3d6000fd5b5050565b64ffffffffff811660009081526002602052604081206108458161132f565b151561085057600080fd5b61085981611391565b9392505050565b60026020819052600091825260409091208054600182015491909201546001608060020a038084169370010000000000000000000000000000000090819004821693600160a060020a0381169364ffffffffff60a060020a830481169460c860020a90930416929181169160ff91041687565b600054600160a060020a031633146108ea57600080fd5b60005460a060020a900460ff161561090157600080fd5b6000805474ff0000000000000000000000000000000000000000191660a060020a1781556040517f6985a02210a168e66602d3235cb6db0e70f92b3ba4d376a33c0f3d9434bff6259190a1565b600054600160a060020a031681565b600054600160a060020a0316331461097457600080fd5b61271061ffff8216111561098757600080fd5b6001805461ffff90921660a060020a0275ffff000000000000000000000000000000000000000019909216919091179055565b6000808080808080808b6001608060020a038111156109d857600080fd5b60005460a060020a900460ff16156109ef57600080fd5b8b985060058a146109ff57600080fd5b610a388b8b8080601f01602080910402602001604051908101604052809392919081815260200183838082843750611418945050505050565b64ffffffffff81166000908152600260208190526040909120908101549199509750700100000000000000000000000000000000900460ff161515610a7c57600080fd5b610a858761132f565b1515610a9057600080fd5b610a9987611391565b9550610aa58987610dbc565b6001880154909550600160a060020a03169350610ac1886114fd565b6000856001608060020a03161115610c2c57610adc8561155c565b9250828503915088600160a060020a03166323b872dd8f30886040518463ffffffff1660e060020a0281526004018084600160a060020a0316600160a060020a0316815260200183600160a060020a0316600160a060020a03168152602001826001608060020a031681526020019350505050602060405180830381600087803b158015610b6957600080fd5b505af1158015610b7d573d6000803e3d6000fd5b505050506040513d6020811015610b9357600080fd5b50511515610ba057600080fd5b604080517fa9059cbb000000000000000000000000000000000000000000000000000000008152600160a060020a0386811660048301526001608060020a03851660248301529151918b169163a9059cbb9160448082019260009290919082900301818387803b158015610c1357600080fd5b505af1158015610c27573d6000803e3d6000fd5b505050505b8b600160a060020a03168e600160a060020a03168964ffffffffff167ff65c85ee1272f6f51bd40bae1565e2868b8e887082e6f94b4924d29d21f842d7898960405180836001608060020a03166001608060020a03168152602001826001608060020a03166001608060020a031681526020019250505060405180910390a4610cb58e89611583565b5050505050505050505050505050565b64ffffffffff8116600090815260026020526040812090610ce58261132f565b1515610cf057600080fd5b506001810154600160a060020a0316338114610d0b57600080fd5b6106818382611348565b64ffffffffff81166000908152600260205260408120819081908190819081908190610d408161132f565b1515610d4b57600080fd5b60018101548154600290920154600160a060020a0382169b6001608060020a038085169c507001000000000000000000000000000000009485900481169b5060a060020a840464ffffffffff9081169b5060c860020a909404909316985091811696509190910460ff169350915050565b600160a060020a0380831660009081526003602052604081205490911681811515610de657600080fd5b81600160a060020a0316633732e1536040518163ffffffff1660e060020a028152600401602060405180830381600087803b158015610e2457600080fd5b505af1158015610e38573d6000803e3d6000fd5b505050506040513d6020811015610e4e57600080fd5b50519050670de0b6b3a76400006001608060020a03851682020495945050505050565b6000805460a060020a900460ff161515610e8a57600080fd5b600054600160a060020a03163314610ea157600080fd5b5064ffffffffff81166000908152600260205260409020610ec18161132f565b1515610ecc57600080fd5b6001810154610822908390600160a060020a0316611348565b600054600160a060020a03163314610efc57600080fd5b600160a060020a0381161515610f1157600080fd5b6004805473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a0392909216919091179055565b346001608060020a03811115610f5557600080fd5b610f5f8234611613565b506108223383611583565b6000610f74611a54565b600154600160a060020a03163314610f8b57600080fd5b610f95838861174e565b64800000000064ffffffffff8516818110935006935060e060405190810160405280876001608060020a03168152602001866001608060020a0316815260200184600160a060020a031681526020018564ffffffffff1681526020014264ffffffffff168152602001346001608060020a03168152602001831515815250905061101f87826117c8565b50505050505050565b60015460008054600160a060020a0392831692163314806110535750600454600160a060020a031633145b80611066575033600160a060020a038316145b151561107157600080fd5b604080517f70a082310000000000000000000000000000000000000000000000000000000081523060048201529051600160a060020a038616916370a082319160248083019260209291908290030181600087803b1580156110d257600080fd5b505af11580156110e6573d6000803e3d6000fd5b505050506040513d60208110156110fc57600080fd5b5051604080517fa9059cbb000000000000000000000000000000000000000000000000000000008152600160a060020a0386811660048301526024820184905291519293509086169163a9059cbb9160448082019260009290919082900301818387803b15801561116c57600080fd5b505af1158015611180573d6000803e3d6000fd5b5050505050505050565b60015460a060020a900461ffff1681565b60008054600160a060020a031633146111b357600080fd5b61271061ffff831611156111c657600080fd5b81600160146101000a81548161ffff021916908361ffff16021790555082905080600160a060020a0316634d6a813a6040518163ffffffff1660e060020a028152600401602060405180830381600087803b15801561122457600080fd5b505af1158015611238573d6000803e3d6000fd5b505050506040513d602081101561124e57600080fd5b5051151561125b57600080fd5b6001805473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a03929092169190911790555050565b600154600160a060020a031681565b600054600160a060020a031633146112b257600080fd5b600160a060020a03811615156112c757600080fd5b60008054604051600160a060020a03808516939216917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e091a36000805473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a0392909216919091179055565b60010154600060c860020a90910464ffffffffff161190565b611351826114fd565b61135b8183611583565b60405164ffffffffff8316907ff6680ade663631ec4dd74f7eaa1f75125361380cd50a22f969e9acfa5f53670490600090a25050565b60018101546000908190429064ffffffffff60c860020a909104811690821611156113ce57600184015460c860020a900464ffffffffff16810391505b83546001850154611410916001608060020a0380821692700100000000000000000000000000000000909204169060a060020a900464ffffffffff16856119ed565b949350505050565b600081600481518110151561142957fe5b90602001015160f860020a900460f860020a0260f860020a900463100000000282600381518110151561145857fe5b90602001015160f860020a900460f860020a0260f860020a9004621000000283600281518110151561148657fe5b90602001015160f860020a900460f860020a0260f860020a900462010000028460018151811015156114b457fe5b90602001015160f860020a900460f860020a0260f860020a9004610100028560008151811015156114e157fe5b016020015160f860020a90819004810204010101019050919050565b64ffffffffff16600090815260026020819052604082209182556001820180547fffff00000000000000000000000000000000000000000000000000000000000016905501805470ffffffffffffffffffffffffffffffffff19169055565b6001546000906127109060a060020a900461ffff1683026001608060020a03160492915050565b600154604080517fa9059cbb000000000000000000000000000000000000000000000000000000008152600160a060020a03858116600483015264ffffffffff851660248301529151919092169163a9059cbb91604480830192600092919082900301818387803b1580156115f757600080fd5b505af115801561160b573d6000803e3d6000fd5b505050505050565b64ffffffffff82166000908152600260205260408120818080806116368561132f565b151561164157600080fd5b61164a85611391565b93506001608060020a03808516908816101561166557600080fd5b6001850154600160a060020a0316925061167e886114fd565b6000846001608060020a03161180156116a55750600154600160a060020a03848116911614155b156116fb576116b38461155c565b6040519092508285039150600160a060020a038416906001608060020a03831680156108fc02916000818181858888f193505050501580156116f9573d6000803e3d6000fd5b505b604080516001608060020a03861681529051339164ffffffffff8b16917f8500e47909916e51e97e4880e742d8b9af1afaeb9ea54166947cf42e6616b1179181900360200190a350919695505050505050565b600154604080517f23b872dd000000000000000000000000000000000000000000000000000000008152600160a060020a03858116600483015230602483015264ffffffffff85166044830152915191909216916323b872dd91606480830192600092919082900301818387803b1580156115f757600080fd5b603c816060015164ffffffffff16101515156117e357600080fd5b80600260008464ffffffffff1664ffffffffff16815260200190815260200160002060008201518160000160006101000a8154816001608060020a0302191690836001608060020a0316021790555060208201518160000160106101000a8154816001608060020a0302191690836001608060020a0316021790555060408201518160010160006101000a815481600160a060020a030219169083600160a060020a0316021790555060608201518160010160146101000a81548164ffffffffff021916908364ffffffffff16021790555060808201518160010160196101000a81548164ffffffffff021916908364ffffffffff16021790555060a08201518160020160006101000a8154816001608060020a0302191690836001608060020a0316021790555060c08201518160020160106101000a81548160ff0219169083151502179055509050508164ffffffffff167fb5cfc381f79e09b5e427756c6c36086288faf8a39c226abab7c517219fb6c8018260000151836020015184606001518560a001518660c0015160405180866001608060020a03166001608060020a03168152602001856001608060020a03166001608060020a031681526020018464ffffffffff1664ffffffffff168152602001836001608060020a03166001608060020a03168152602001821515151581526020019550505050505060405180910390a25050565b600080808064ffffffffff80871690861610611a0b57869350611a49565b876001608060020a0316876001608060020a03160392508564ffffffffff168564ffffffffff168402811515611a3d57fe5b05915081880190508093505b505050949350505050565b6040805160e081018252600080825260208201819052918101829052606081018290526080810182905260a0810182905260c0810191909152905600a165627a7a72305820ac2fec71521e845cf303e1bcb3587d7d286c18823b7b0678f42dfcc6e9f1e6400029
Deployed Bytecode
0x6080604052600436106101455763ffffffff60e060020a6000350416632177885d81146101545780632951f1b21461018757806330d9161d146101c45780633f4ba83a146101e55780635476bd72146101fa5780635c975abb146102215780635fa7b584146102365780636066b06614610257578063776247c41461026c5780637ea310d41461028157806381baab24146102bc5780638456cb59146103355780638da5cb5b1461034a5780638e0055531461035f5780638f4ffcb11461037b57806398c9faac146103b35780639ccaec98146103d2578063a01da7b21461044a578063b2fb3b9014610477578063b3ab15fb14610496578063c170fd54146104b7578063c1d1faf3146104c9578063cda8c71514610502578063d5b2a01a14610529578063e410a0c614610555578063e80db5db1461057d578063f2fde38b14610592575b34801561015157600080fd5b50005b34801561016057600080fd5b5061017364ffffffffff600435166105b3565b604080519115158252519081900360200190f35b34801561019357600080fd5b506101a8600160a060020a03600435166105dc565b60408051600160a060020a039092168252519081900360200190f35b3480156101d057600080fd5b506101e364ffffffffff600435166105f7565b005b3480156101f157600080fd5b506101e3610686565b34801561020657600080fd5b506101e3600160a060020a03600435811690602435166106fc565b34801561022d57600080fd5b5061017361074e565b34801561024257600080fd5b506101e3600160a060020a036004351661075e565b34801561026357600080fd5b506101736107a9565b34801561027857600080fd5b506101e36107b9565b34801561028d57600080fd5b506102a064ffffffffff60043516610826565b604080516001608060020a039092168252519081900360200190f35b3480156102c857600080fd5b506102db64ffffffffff60043516610860565b604080516001608060020a0398891681529688166020880152600160a060020a039095168686015264ffffffffff9384166060870152919092166080850152931660a083015291151560c082015290519081900360e00190f35b34801561034157600080fd5b506101e36108d3565b34801561035657600080fd5b506101a861094e565b34801561036b57600080fd5b506101e361ffff6004351661095d565b34801561038757600080fd5b506101e360048035600160a060020a0390811691602480359260443516916064359182019101356109ba565b3480156103bf57600080fd5b506101e364ffffffffff60043516610cc5565b3480156103de57600080fd5b506103f164ffffffffff60043516610d15565b60408051600160a060020a0390981688526001608060020a0396871660208901529486168786015264ffffffffff9384166060880152919092166080860152921660a084015290151560c0830152519081900360e00190f35b34801561045657600080fd5b506102a0600160a060020a03600435166001608060020a0360243516610dbc565b34801561048357600080fd5b506101e364ffffffffff60043516610e71565b3480156104a257600080fd5b506101e3600160a060020a0360043516610ee5565b6101e364ffffffffff60043516610f40565b6101e364ffffffffff6004358116906001608060020a036024358116916044359091169060643516600160a060020a0360843516610f6a565b34801561050e57600080fd5b506101e3600160a060020a0360043581169060243516611028565b34801561053557600080fd5b5061053e61118a565b6040805161ffff9092168252519081900360200190f35b34801561056157600080fd5b506101e3600160a060020a036004351661ffff6024351661119b565b34801561058957600080fd5b506101a861128c565b34801561059e57600080fd5b506101e3600160a060020a036004351661129b565b64ffffffffff90811660009081526002602052604081206001015460c860020a90049091161190565b600360205260009081526040902054600160a060020a031681565b6004546000908190600160a060020a031633148061061f5750600054600160a060020a031633145b151561062a57600080fd5b64ffffffffff83166000908152600260205260409020915061064b8261132f565b151561065657600080fd5b506001808201549054600160a060020a039182169116811461067757600080fd5b6106818333611348565b505050565b600054600160a060020a0316331461069d57600080fd5b60005460a060020a900460ff1615156106b557600080fd5b6000805474ff0000000000000000000000000000000000000000191681556040517f7805862f689e2f13df9f062ff482ad3ad112aca9e0847911ed832e158c525b339190a1565b600054600160a060020a0316331461071357600080fd5b600160a060020a039182166000908152600360205260409020805473ffffffffffffffffffffffffffffffffffffffff191691909216179055565b60005460a060020a900460ff1681565b600054600160a060020a0316331461077557600080fd5b600160a060020a03166000908152600360205260409020805473ffffffffffffffffffffffffffffffffffffffff19169055565b60045460a060020a900460ff1681565b600154600054600160a060020a0391821691163314806107e1575033600160a060020a038216145b15156107ec57600080fd5b604051600160a060020a03821690303180156108fc02916000818181858888f19350505050158015610822573d6000803e3d6000fd5b5050565b64ffffffffff811660009081526002602052604081206108458161132f565b151561085057600080fd5b61085981611391565b9392505050565b60026020819052600091825260409091208054600182015491909201546001608060020a038084169370010000000000000000000000000000000090819004821693600160a060020a0381169364ffffffffff60a060020a830481169460c860020a90930416929181169160ff91041687565b600054600160a060020a031633146108ea57600080fd5b60005460a060020a900460ff161561090157600080fd5b6000805474ff0000000000000000000000000000000000000000191660a060020a1781556040517f6985a02210a168e66602d3235cb6db0e70f92b3ba4d376a33c0f3d9434bff6259190a1565b600054600160a060020a031681565b600054600160a060020a0316331461097457600080fd5b61271061ffff8216111561098757600080fd5b6001805461ffff90921660a060020a0275ffff000000000000000000000000000000000000000019909216919091179055565b6000808080808080808b6001608060020a038111156109d857600080fd5b60005460a060020a900460ff16156109ef57600080fd5b8b985060058a146109ff57600080fd5b610a388b8b8080601f01602080910402602001604051908101604052809392919081815260200183838082843750611418945050505050565b64ffffffffff81166000908152600260208190526040909120908101549199509750700100000000000000000000000000000000900460ff161515610a7c57600080fd5b610a858761132f565b1515610a9057600080fd5b610a9987611391565b9550610aa58987610dbc565b6001880154909550600160a060020a03169350610ac1886114fd565b6000856001608060020a03161115610c2c57610adc8561155c565b9250828503915088600160a060020a03166323b872dd8f30886040518463ffffffff1660e060020a0281526004018084600160a060020a0316600160a060020a0316815260200183600160a060020a0316600160a060020a03168152602001826001608060020a031681526020019350505050602060405180830381600087803b158015610b6957600080fd5b505af1158015610b7d573d6000803e3d6000fd5b505050506040513d6020811015610b9357600080fd5b50511515610ba057600080fd5b604080517fa9059cbb000000000000000000000000000000000000000000000000000000008152600160a060020a0386811660048301526001608060020a03851660248301529151918b169163a9059cbb9160448082019260009290919082900301818387803b158015610c1357600080fd5b505af1158015610c27573d6000803e3d6000fd5b505050505b8b600160a060020a03168e600160a060020a03168964ffffffffff167ff65c85ee1272f6f51bd40bae1565e2868b8e887082e6f94b4924d29d21f842d7898960405180836001608060020a03166001608060020a03168152602001826001608060020a03166001608060020a031681526020019250505060405180910390a4610cb58e89611583565b5050505050505050505050505050565b64ffffffffff8116600090815260026020526040812090610ce58261132f565b1515610cf057600080fd5b506001810154600160a060020a0316338114610d0b57600080fd5b6106818382611348565b64ffffffffff81166000908152600260205260408120819081908190819081908190610d408161132f565b1515610d4b57600080fd5b60018101548154600290920154600160a060020a0382169b6001608060020a038085169c507001000000000000000000000000000000009485900481169b5060a060020a840464ffffffffff9081169b5060c860020a909404909316985091811696509190910460ff169350915050565b600160a060020a0380831660009081526003602052604081205490911681811515610de657600080fd5b81600160a060020a0316633732e1536040518163ffffffff1660e060020a028152600401602060405180830381600087803b158015610e2457600080fd5b505af1158015610e38573d6000803e3d6000fd5b505050506040513d6020811015610e4e57600080fd5b50519050670de0b6b3a76400006001608060020a03851682020495945050505050565b6000805460a060020a900460ff161515610e8a57600080fd5b600054600160a060020a03163314610ea157600080fd5b5064ffffffffff81166000908152600260205260409020610ec18161132f565b1515610ecc57600080fd5b6001810154610822908390600160a060020a0316611348565b600054600160a060020a03163314610efc57600080fd5b600160a060020a0381161515610f1157600080fd5b6004805473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a0392909216919091179055565b346001608060020a03811115610f5557600080fd5b610f5f8234611613565b506108223383611583565b6000610f74611a54565b600154600160a060020a03163314610f8b57600080fd5b610f95838861174e565b64800000000064ffffffffff8516818110935006935060e060405190810160405280876001608060020a03168152602001866001608060020a0316815260200184600160a060020a031681526020018564ffffffffff1681526020014264ffffffffff168152602001346001608060020a03168152602001831515815250905061101f87826117c8565b50505050505050565b60015460008054600160a060020a0392831692163314806110535750600454600160a060020a031633145b80611066575033600160a060020a038316145b151561107157600080fd5b604080517f70a082310000000000000000000000000000000000000000000000000000000081523060048201529051600160a060020a038616916370a082319160248083019260209291908290030181600087803b1580156110d257600080fd5b505af11580156110e6573d6000803e3d6000fd5b505050506040513d60208110156110fc57600080fd5b5051604080517fa9059cbb000000000000000000000000000000000000000000000000000000008152600160a060020a0386811660048301526024820184905291519293509086169163a9059cbb9160448082019260009290919082900301818387803b15801561116c57600080fd5b505af1158015611180573d6000803e3d6000fd5b5050505050505050565b60015460a060020a900461ffff1681565b60008054600160a060020a031633146111b357600080fd5b61271061ffff831611156111c657600080fd5b81600160146101000a81548161ffff021916908361ffff16021790555082905080600160a060020a0316634d6a813a6040518163ffffffff1660e060020a028152600401602060405180830381600087803b15801561122457600080fd5b505af1158015611238573d6000803e3d6000fd5b505050506040513d602081101561124e57600080fd5b5051151561125b57600080fd5b6001805473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a03929092169190911790555050565b600154600160a060020a031681565b600054600160a060020a031633146112b257600080fd5b600160a060020a03811615156112c757600080fd5b60008054604051600160a060020a03808516939216917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e091a36000805473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a0392909216919091179055565b60010154600060c860020a90910464ffffffffff161190565b611351826114fd565b61135b8183611583565b60405164ffffffffff8316907ff6680ade663631ec4dd74f7eaa1f75125361380cd50a22f969e9acfa5f53670490600090a25050565b60018101546000908190429064ffffffffff60c860020a909104811690821611156113ce57600184015460c860020a900464ffffffffff16810391505b83546001850154611410916001608060020a0380821692700100000000000000000000000000000000909204169060a060020a900464ffffffffff16856119ed565b949350505050565b600081600481518110151561142957fe5b90602001015160f860020a900460f860020a0260f860020a900463100000000282600381518110151561145857fe5b90602001015160f860020a900460f860020a0260f860020a9004621000000283600281518110151561148657fe5b90602001015160f860020a900460f860020a0260f860020a900462010000028460018151811015156114b457fe5b90602001015160f860020a900460f860020a0260f860020a9004610100028560008151811015156114e157fe5b016020015160f860020a90819004810204010101019050919050565b64ffffffffff16600090815260026020819052604082209182556001820180547fffff00000000000000000000000000000000000000000000000000000000000016905501805470ffffffffffffffffffffffffffffffffff19169055565b6001546000906127109060a060020a900461ffff1683026001608060020a03160492915050565b600154604080517fa9059cbb000000000000000000000000000000000000000000000000000000008152600160a060020a03858116600483015264ffffffffff851660248301529151919092169163a9059cbb91604480830192600092919082900301818387803b1580156115f757600080fd5b505af115801561160b573d6000803e3d6000fd5b505050505050565b64ffffffffff82166000908152600260205260408120818080806116368561132f565b151561164157600080fd5b61164a85611391565b93506001608060020a03808516908816101561166557600080fd5b6001850154600160a060020a0316925061167e886114fd565b6000846001608060020a03161180156116a55750600154600160a060020a03848116911614155b156116fb576116b38461155c565b6040519092508285039150600160a060020a038416906001608060020a03831680156108fc02916000818181858888f193505050501580156116f9573d6000803e3d6000fd5b505b604080516001608060020a03861681529051339164ffffffffff8b16917f8500e47909916e51e97e4880e742d8b9af1afaeb9ea54166947cf42e6616b1179181900360200190a350919695505050505050565b600154604080517f23b872dd000000000000000000000000000000000000000000000000000000008152600160a060020a03858116600483015230602483015264ffffffffff85166044830152915191909216916323b872dd91606480830192600092919082900301818387803b1580156115f757600080fd5b603c816060015164ffffffffff16101515156117e357600080fd5b80600260008464ffffffffff1664ffffffffff16815260200190815260200160002060008201518160000160006101000a8154816001608060020a0302191690836001608060020a0316021790555060208201518160000160106101000a8154816001608060020a0302191690836001608060020a0316021790555060408201518160010160006101000a815481600160a060020a030219169083600160a060020a0316021790555060608201518160010160146101000a81548164ffffffffff021916908364ffffffffff16021790555060808201518160010160196101000a81548164ffffffffff021916908364ffffffffff16021790555060a08201518160020160006101000a8154816001608060020a0302191690836001608060020a0316021790555060c08201518160020160106101000a81548160ff0219169083151502179055509050508164ffffffffff167fb5cfc381f79e09b5e427756c6c36086288faf8a39c226abab7c517219fb6c8018260000151836020015184606001518560a001518660c0015160405180866001608060020a03166001608060020a03168152602001856001608060020a03166001608060020a031681526020018464ffffffffff1664ffffffffff168152602001836001608060020a03166001608060020a03168152602001821515151581526020019550505050505060405180910390a25050565b600080808064ffffffffff80871690861610611a0b57869350611a49565b876001608060020a0316876001608060020a03160392508564ffffffffff168564ffffffffff168402811515611a3d57fe5b05915081880190508093505b505050949350505050565b6040805160e081018252600080825260208201819052918101829052606081018290526080810182905260a0810182905260c0810191909152905600a165627a7a72305820ac2fec71521e845cf303e1bcb3587d7d286c18823b7b0678f42dfcc6e9f1e6400029
Swarm Source
bzzr://ac2fec71521e845cf303e1bcb3587d7d286c18823b7b0678f42dfcc6e9f1e640
Loading...
Loading
Loading...
Loading
Net Worth in USD
$0.00
Net Worth in ETH
0
Multichain Portfolio | 33 Chains
| Chain | Token | Portfolio % | Price | Amount | Value |
|---|
Loading...
Loading
Loading...
Loading
Loading...
Loading
[ Download: CSV Export ]
[ Download: CSV Export ]
A contract address hosts a smart contract, which is a set of code stored on the blockchain that runs when predetermined conditions are met. Learn more about addresses in our Knowledge Base.