More Info
Private Name Tags
ContractCreator
Latest 25 from a total of 2,125 transactions
Transaction Hash |
Method
|
Block
|
From
|
To
|
|||||
---|---|---|---|---|---|---|---|---|---|
Withdraw | 13730539 | 1160 days ago | IN | 0 ETH | 0.00426952 | ||||
Withdraw | 13594178 | 1182 days ago | IN | 0 ETH | 0.01250927 | ||||
Withdraw | 13316826 | 1225 days ago | IN | 0 ETH | 0.0057624 | ||||
End | 13316041 | 1225 days ago | IN | 0 ETH | 0.010347 | ||||
Bid | 13310904 | 1226 days ago | IN | 0 ETH | 0.00859497 | ||||
Bid | 13309316 | 1226 days ago | IN | 0 ETH | 0.01401981 | ||||
Create | 13309173 | 1226 days ago | IN | 0 ETH | 0.0193942 | ||||
End | 13292875 | 1229 days ago | IN | 0 ETH | 0.00519619 | ||||
End | 13292874 | 1229 days ago | IN | 0 ETH | 0.00548993 | ||||
Withdraw | 13221670 | 1240 days ago | IN | 0 ETH | 0.00259308 | ||||
Withdraw | 13220021 | 1240 days ago | IN | 0 ETH | 0.00357268 | ||||
End | 13188003 | 1245 days ago | IN | 0 ETH | 0.01578377 | ||||
Withdraw | 13188002 | 1245 days ago | IN | 0 ETH | 0.0073042 | ||||
End | 13188000 | 1245 days ago | IN | 0 ETH | 0.0169483 | ||||
Withdraw | 13187994 | 1245 days ago | IN | 0 ETH | 0.00909034 | ||||
End | 13186582 | 1245 days ago | IN | 0 ETH | 0.02133921 | ||||
End | 13186575 | 1245 days ago | IN | 0 ETH | 0.02382701 | ||||
Bid | 13186549 | 1245 days ago | IN | 0 ETH | 0.01394139 | ||||
Bid | 13186541 | 1245 days ago | IN | 0 ETH | 0.01595613 | ||||
Bid | 13186526 | 1245 days ago | IN | 0 ETH | 0.01437746 | ||||
Bid | 13186507 | 1245 days ago | IN | 0 ETH | 0.02274355 | ||||
Bid | 13186483 | 1245 days ago | IN | 0 ETH | 0.0220959 | ||||
Bid | 13186423 | 1245 days ago | IN | 0 ETH | 0.02510942 | ||||
Bid | 13183778 | 1246 days ago | IN | 0 ETH | 0.0112938 | ||||
Bid | 13183774 | 1246 days ago | IN | 0 ETH | 0.01158105 |
View more zero value Internal Transactions in Advanced View mode
Advanced mode:
Loading...
Loading
Contract Source Code Verified (Exact Match)
Contract Name:
MEMEAuctionExtending
Compiler Version
v0.5.12+commit.7709ece9
Optimization Enabled:
Yes with 9999 runs
Other Settings:
default evmVersion
Contract Source Code (Solidity)
/** *Submitted for verification at Etherscan.io on 2020-11-20 */ pragma solidity ^0.5.12; /** * @dev Wrappers over Solidity's arithmetic operations with added overflow * checks. * * Arithmetic operations in Solidity wrap on overflow. This can easily result * in bugs, because programmers usually assume that an overflow raises an * error, which is the standard behavior in high level programming languages. * `SafeMath` restores this intuition by reverting the transaction when an * operation overflows. * * Using this library instead of the unchecked operations eliminates an entire * class of bugs, so it's recommended to use it always. */ library SafeMath { /** * @dev Returns the addition of two unsigned integers, reverting on * overflow. * * Counterpart to Solidity's `+` operator. * * Requirements: * - Addition cannot overflow. */ function add(uint256 a, uint256 b) internal pure returns (uint256) { uint256 c = a + b; require(c >= a, "SafeMath: addition overflow"); return c; } /** * @dev Returns the subtraction of two unsigned integers, reverting on * overflow (when the result is negative). * * Counterpart to Solidity's `-` operator. * * Requirements: * - Subtraction cannot overflow. */ function sub(uint256 a, uint256 b) internal pure returns (uint256) { return sub(a, b, "SafeMath: subtraction overflow"); } /** * @dev Returns the subtraction of two unsigned integers, reverting with custom message on * overflow (when the result is negative). * * Counterpart to Solidity's `-` operator. * * Requirements: * - Subtraction cannot overflow. * * _Available since v2.4.0._ */ function sub(uint256 a, uint256 b, string memory errorMessage) internal pure returns (uint256) { require(b <= a, errorMessage); uint256 c = a - b; return c; } /** * @dev Returns the multiplication of two unsigned integers, reverting on * overflow. * * Counterpart to Solidity's `*` operator. * * Requirements: * - Multiplication cannot overflow. */ function mul(uint256 a, uint256 b) internal pure returns (uint256) { // Gas optimization: this is cheaper than requiring 'a' not being zero, but the // benefit is lost if 'b' is also tested. // See: https://github.com/OpenZeppelin/openzeppelin-contracts/pull/522 if (a == 0) { return 0; } uint256 c = a * b; require(c / a == b, "SafeMath: multiplication overflow"); return c; } /** * @dev Returns the integer division of two unsigned integers. Reverts on * division by zero. The result is rounded towards zero. * * Counterpart to Solidity's `/` operator. Note: this function uses a * `revert` opcode (which leaves remaining gas untouched) while Solidity * uses an invalid opcode to revert (consuming all remaining gas). * * Requirements: * - The divisor cannot be zero. */ function div(uint256 a, uint256 b) internal pure returns (uint256) { return div(a, b, "SafeMath: division by zero"); } /** * @dev Returns the integer division of two unsigned integers. Reverts with custom message on * division by zero. The result is rounded towards zero. * * Counterpart to Solidity's `/` operator. Note: this function uses a * `revert` opcode (which leaves remaining gas untouched) while Solidity * uses an invalid opcode to revert (consuming all remaining gas). * * Requirements: * - The divisor cannot be zero. * * _Available since v2.4.0._ */ function div(uint256 a, uint256 b, string memory errorMessage) internal pure returns (uint256) { // Solidity only automatically asserts when dividing by 0 require(b > 0, errorMessage); uint256 c = a / b; // assert(a == b * c + a % b); // There is no case in which this doesn't hold return c; } /** * @dev Returns the remainder of dividing two unsigned integers. (unsigned integer modulo), * Reverts when dividing by zero. * * Counterpart to Solidity's `%` operator. This function uses a `revert` * opcode (which leaves remaining gas untouched) while Solidity uses an * invalid opcode to revert (consuming all remaining gas). * * Requirements: * - The divisor cannot be zero. */ function mod(uint256 a, uint256 b) internal pure returns (uint256) { return mod(a, b, "SafeMath: modulo by zero"); } /** * @dev Returns the remainder of dividing two unsigned integers. (unsigned integer modulo), * Reverts with custom message when dividing by zero. * * Counterpart to Solidity's `%` operator. This function uses a `revert` * opcode (which leaves remaining gas untouched) while Solidity uses an * invalid opcode to revert (consuming all remaining gas). * * Requirements: * - The divisor cannot be zero. * * _Available since v2.4.0._ */ function mod(uint256 a, uint256 b, string memory errorMessage) internal pure returns (uint256) { require(b != 0, errorMessage); return a % b; } } /* * @dev Provides information about the current execution context, including the * sender of the transaction and its data. While these are generally available * via msg.sender and msg.data, they should not be accessed in such a direct * manner, since when dealing with GSN meta-transactions the account sending and * paying for execution may not be the actual sender (as far as an application * is concerned). * * This contract is only required for intermediate, library-like contracts. */ contract Context { // Empty internal constructor, to prevent people from mistakenly deploying // an instance of this contract, which should be used via inheritance. constructor () internal { } // solhint-disable-previous-line no-empty-blocks function _msgSender() internal view returns (address payable) { return msg.sender; } function _msgData() internal view returns (bytes memory) { this; // silence state mutability warning without generating bytecode - see https://github.com/ethereum/solidity/issues/2691 return msg.data; } } /** * @dev Contract module which provides a basic access control mechanism, where * there is an account (an owner) that can be granted exclusive access to * specific functions. * * This module is used through inheritance. It will make available the modifier * `onlyOwner`, which can be applied to your functions to restrict their use to * the owner. */ contract Ownable is Context { address private _owner; event OwnershipTransferred(address indexed previousOwner, address indexed newOwner); /** * @dev Initializes the contract setting the deployer as the initial owner. */ constructor () internal { address msgSender = _msgSender(); _owner = msgSender; emit OwnershipTransferred(address(0), msgSender); } /** * @dev Returns the address of the current owner. */ function owner() public view returns (address) { return _owner; } /** * @dev Throws if called by any account other than the owner. */ modifier onlyOwner() { require(isOwner(), "Ownable: caller is not the owner"); _; } /** * @dev Returns true if the caller is the current owner. */ function isOwner() public view returns (bool) { return _msgSender() == _owner; } /** * @dev Leaves the contract without owner. It will not be possible to call * `onlyOwner` functions anymore. Can only be called by the current owner. * * NOTE: Renouncing ownership will leave the contract without an owner, * thereby removing any functionality that is only available to the owner. */ function renounceOwnership() public onlyOwner { emit OwnershipTransferred(_owner, address(0)); _owner = address(0); } /** * @dev Transfers ownership of the contract to a new account (`newOwner`). * Can only be called by the current owner. */ function transferOwnership(address newOwner) public onlyOwner { _transferOwnership(newOwner); } /** * @dev Transfers ownership of the contract to a new account (`newOwner`). */ function _transferOwnership(address newOwner) internal { require(newOwner != address(0), "Ownable: new owner is the zero address"); emit OwnershipTransferred(_owner, newOwner); _owner = newOwner; } } /** * @dev Interface of the ERC20 standard as defined in the EIP. Does not include * the optional functions; to access them see {ERC20Detailed}. */ interface IERC20 { /** * @dev Returns the amount of tokens in existence. */ function totalSupply() external view returns (uint256); /** * @dev Returns the amount of tokens owned by `account`. */ function balanceOf(address account) external view returns (uint256); /** * @dev Moves `amount` tokens from the caller's account to `recipient`. * * Returns a boolean value indicating whether the operation succeeded. * * Emits a {Transfer} event. */ function transfer(address recipient, uint256 amount) external returns (bool); /** * @dev Returns the remaining number of tokens that `spender` will be * allowed to spend on behalf of `owner` through {transferFrom}. This is * zero by default. * * This value changes when {approve} or {transferFrom} are called. */ function allowance(address owner, address spender) external view returns (uint256); /** * @dev Sets `amount` as the allowance of `spender` over the caller's tokens. * * Returns a boolean value indicating whether the operation succeeded. * * IMPORTANT: 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 * * Emits an {Approval} event. */ function approve(address spender, uint256 amount) external returns (bool); /** * @dev Moves `amount` tokens from `sender` to `recipient` using the * allowance mechanism. `amount` is then deducted from the caller's * allowance. * * Returns a boolean value indicating whether the operation succeeded. * * Emits a {Transfer} event. */ function transferFrom(address sender, address recipient, uint256 amount) external returns (bool); /** * @dev Emitted when `value` tokens are moved from one account (`from`) to * another (`to`). * * Note that `value` may be zero. */ event Transfer(address indexed from, address indexed to, uint256 value); /** * @dev Emitted when the allowance of a `spender` for an `owner` is set by * a call to {approve}. `value` is the new allowance. */ event Approval(address indexed owner, address indexed spender, uint256 value); } /** * @dev Contract module that helps prevent reentrant calls to a function. * * Inheriting from `ReentrancyGuard` will make the {nonReentrant} modifier * available, which can be applied to functions to make sure there are no nested * (reentrant) calls to them. * * Note that because there is a single `nonReentrant` guard, functions marked as * `nonReentrant` may not call one another. This can be worked around by making * those functions `private`, and then adding `external` `nonReentrant` entry * points to them. * * TIP: If you would like to learn more about reentrancy and alternative ways * to protect against it, check out our blog post * https://blog.openzeppelin.com/reentrancy-after-istanbul/[Reentrancy After Istanbul]. * * _Since v2.5.0:_ this module is now much more gas efficient, given net gas * metering changes introduced in the Istanbul hardfork. */ contract ReentrancyGuard { bool private _notEntered; constructor () internal { // Storing an initial non-zero value makes deployment a bit more // expensive, but in exchange the refund on every call to nonReentrant // will be lower in amount. Since refunds are capped to a percetange of // the total transaction's gas, it is best to keep them low in cases // like this one, to increase the likelihood of the full refund coming // into effect. _notEntered = true; } /** * @dev Prevents a contract from calling itself, directly or indirectly. * Calling a `nonReentrant` function from another `nonReentrant` * function is not supported. It is possible to prevent this from happening * by making the `nonReentrant` function external, and make it call a * `private` function that does the actual work. */ modifier nonReentrant() { // On the first call to nonReentrant, _notEntered will be true require(_notEntered, "ReentrancyGuard: reentrant call"); // Any calls to nonReentrant after this point will fail _notEntered = false; _; // By storing the original value once again, a refund is triggered (see // https://eips.ethereum.org/EIPS/eip-2200) _notEntered = true; } } /** * @title ERC165 * @dev https://github.com/ethereum/EIPs/blob/master/EIPS/eip-165.md */ interface IERC165 { /** * @notice Query if a contract implements an interface * @dev Interface identification is specified in ERC-165. This function * uses less than 30,000 gas * @param _interfaceId The interface identifier, as specified in ERC-165 */ function supportsInterface(bytes4 _interfaceId) external view returns (bool); } /** * @dev ERC-1155 interface for accepting safe transfers. */ interface IERC1155TokenReceiver { /** * @notice Handle the receipt of a single ERC1155 token type * @dev An ERC1155-compliant smart contract MUST call this function on the token recipient contract, at the end of a `safeTransferFrom` after the balance has been updated * This function MAY throw to revert and reject the transfer * Return of other amount than the magic value MUST result in the transaction being reverted * Note: The token contract address is always the message sender * @param _operator The address which called the `safeTransferFrom` function * @param _from The address which previously owned the token * @param _id The id of the token being transferred * @param _amount The amount of tokens being transferred * @param _data Additional data with no specified format * @return `bytes4(keccak256("onERC1155Received(address,address,uint256,uint256,bytes)"))` */ function onERC1155Received(address _operator, address _from, uint256 _id, uint256 _amount, bytes calldata _data) external returns(bytes4); /** * @notice Handle the receipt of multiple ERC1155 token types * @dev An ERC1155-compliant smart contract MUST call this function on the token recipient contract, at the end of a `safeBatchTransferFrom` after the balances have been updated * This function MAY throw to revert and reject the transfer * Return of other amount than the magic value WILL result in the transaction being reverted * Note: The token contract address is always the message sender * @param _operator The address which called the `safeBatchTransferFrom` function * @param _from The address which previously owned the token * @param _ids An array containing ids of each token being transferred * @param _amounts An array containing amounts of each token being transferred * @param _data Additional data with no specified format * @return `bytes4(keccak256("onERC1155BatchReceived(address,address,uint256[],uint256[],bytes)"))` */ function onERC1155BatchReceived(address _operator, address _from, uint256[] calldata _ids, uint256[] calldata _amounts, bytes calldata _data) external returns(bytes4); /** * @notice Indicates whether a contract implements the `ERC1155TokenReceiver` functions and so can accept ERC1155 token types. * @param interfaceID The ERC-165 interface ID that is queried for support.s * @dev This function MUST return true if it implements the ERC1155TokenReceiver interface and ERC-165 interface. * This function MUST NOT consume more than 5,000 gas. * @return Wheter ERC-165 or ERC1155TokenReceiver interfaces are supported. */ function supportsInterface(bytes4 interfaceID) external view returns (bool); } contract MemeTokenWrapper { using SafeMath for uint256; IERC20 public meme; constructor(address _memeAddress) public { meme = IERC20(_memeAddress); } uint256 private _totalSupply; // Objects balances [id][address] => balance mapping(uint256 => mapping(address => uint256)) internal _balances; mapping(uint256 => uint256) private _totalDeposits; function totalSupply() public view returns (uint256) { return _totalSupply; } function totalDeposits(uint256 id) public view returns (uint256) { return _totalDeposits[id]; } function balanceOf(address account, uint256 id) public view returns (uint256) { return _balances[id][account]; } function bid(uint256 id, uint256 amount) public { _totalSupply = _totalSupply.add(amount); _totalDeposits[id] = _totalDeposits[id].add(amount); _balances[id][msg.sender] = _balances[id][msg.sender].add(amount); meme.transferFrom(msg.sender, address(this), amount); } function withdraw(uint256 id) public { uint256 amount = balanceOf(msg.sender, id); _totalSupply = _totalSupply.sub(amount); _totalDeposits[id] = _totalDeposits[id].sub(amount); _balances[id][msg.sender] = _balances[id][msg.sender].sub(amount); meme.transfer(msg.sender, amount); } function _emergencyWithdraw(address account, uint256 id) internal { uint256 amount = _balances[id][account]; _totalSupply = _totalSupply.sub(amount); _totalDeposits[id] = _totalDeposits[id].sub(amount); _balances[id][account] = _balances[id][account].sub(amount); meme.transfer(account, amount); } function _end( uint256 id, address highestBidder, address beneficiary, address runner, uint256 fee, uint256 amount ) internal { uint256 accountDeposits = _balances[id][highestBidder]; require(accountDeposits == amount); _totalSupply = _totalSupply.sub(amount); uint256 memeFee = (amount.mul(fee)).div(100); _totalDeposits[id] = _totalDeposits[id].sub(amount); _balances[id][highestBidder] = _balances[id][highestBidder].sub(amount); meme.transfer(beneficiary, amount.sub(memeFee)); meme.transfer(runner, memeFee); } } interface IERC1155 { function create( uint256 _maxSupply, uint256 _initialSupply, string calldata _uri, bytes calldata _data ) external returns (uint256 tokenId); function safeTransferFrom( address _from, address _to, uint256 _id, uint256 _amount, bytes calldata _data ) external; function safeBatchTransferFrom( address _from, address _to, uint256[] calldata _ids, uint256[] calldata _amounts, bytes calldata _data ) external; function balanceOf(address _owner, uint256 _id) external view returns (uint256); function balanceOfBatch(address[] calldata _owners, uint256[] calldata _ids) external view returns (uint256[] memory); function setApprovalForAll(address _operator, bool _approved) external; function isApprovedForAll(address _owner, address _operator) external view returns (bool isOperator); event TransferSingle( address indexed _operator, address indexed _from, address indexed _to, uint256 _id, uint256 _amount ); event TransferBatch( address indexed _operator, address indexed _from, address indexed _to, uint256[] _ids, uint256[] _amounts ); event ApprovalForAll(address indexed _owner, address indexed _operator, bool _approved); event URI(string _amount, uint256 indexed _id); } contract MEMEAuctionExtending is Ownable, ReentrancyGuard, MemeTokenWrapper, IERC1155TokenReceiver { using SafeMath for uint256; address public memeLtdAddress; address public runner; // info about a particular auction struct AuctionInfo { address beneficiary; uint256 fee; uint256 auctionStart; uint256 auctionEnd; uint256 originalAuctionEnd; uint256 extension; uint256 nft; address highestBidder; uint256 highestBid; bool auctionEnded; } mapping(uint256 => AuctionInfo) public auctionsById; uint256[] public auctions; // Events that will be fired on changes. event BidPlaced(address indexed user, uint256 indexed id, uint256 amount); event Withdrawn(address indexed user, uint256 indexed id, uint256 amount); event Ended(address indexed user, uint256 indexed id, uint256 amount); constructor( address _runner, address _memeAddress, address _memeLtdAddress ) public MemeTokenWrapper(_memeAddress) { runner = _runner; memeLtdAddress = _memeLtdAddress; } function auctionStart(uint256 id) public view returns (uint256) { return auctionsById[id].auctionStart; } function beneficiary(uint256 id) public view returns (address) { return auctionsById[id].beneficiary; } function auctionEnd(uint256 id) public view returns (uint256) { return auctionsById[id].auctionEnd; } function memeLtdNft(uint256 id) public view returns (uint256) { return auctionsById[id].nft; } function highestBidder(uint256 id) public view returns (address) { return auctionsById[id].highestBidder; } function highestBid(uint256 id) public view returns (uint256) { return auctionsById[id].highestBid; } function ended(uint256 id) public view returns (bool) { return now >= auctionsById[id].auctionEnd; } function runnerFee(uint256 id) public view returns (uint256) { return auctionsById[id].fee; } function setRunnerAddress(address account) public onlyOwner { runner = account; } function create( uint256 id, address beneficiaryAddress, uint256 fee, uint256 start, uint256 duration, uint256 extension // in minutes ) public onlyOwner { AuctionInfo storage auction = auctionsById[id]; require(auction.beneficiary == address(0), "MEMEAuction::create: auction already created"); auction.beneficiary = beneficiaryAddress; auction.fee = fee; auction.auctionStart = start; auction.auctionEnd = start.add(duration * 1 days); auction.originalAuctionEnd = start.add(duration * 1 days); auction.extension = extension * 60; auctions.push(id); uint256 tokenId = IERC1155(memeLtdAddress).create(1, 1, "", ""); require(tokenId > 0, "MEMEAuction::create: ERC1155 create did not succeed"); auction.nft = tokenId; } function bid(uint256 id, uint256 amount) public nonReentrant { AuctionInfo storage auction = auctionsById[id]; require(auction.beneficiary != address(0), "MEMEAuction::bid: auction does not exist"); require(now >= auction.auctionStart, "MEMEAuction::bid: auction has not started"); require(now <= auction.auctionEnd, "MEMEAuction::bid: auction has ended"); uint256 newAmount = amount.add(balanceOf(msg.sender, id)); require(newAmount > auction.highestBid, "MEMEAuction::bid: bid is less than highest bid"); auction.highestBidder = msg.sender; auction.highestBid = newAmount; if (auction.extension > 0 && auction.auctionEnd.sub(now) <= auction.extension) { auction.auctionEnd = now.add(auction.extension); } super.bid(id, amount); emit BidPlaced(msg.sender, id, amount); } function withdraw(uint256 id) public nonReentrant { AuctionInfo storage auction = auctionsById[id]; uint256 amount = balanceOf(msg.sender, id); require(auction.beneficiary != address(0), "MEMEAuction::withdraw: auction does not exist"); require(amount > 0, "MEMEAuction::withdraw: cannot withdraw 0"); require( auction.highestBidder != msg.sender, "MEMEAuction::withdraw: you are the highest bidder and cannot withdraw" ); super.withdraw(id); emit Withdrawn(msg.sender, id, amount); } function emergencyWithdraw(uint256 id) public onlyOwner { AuctionInfo storage auction = auctionsById[id]; require(auction.beneficiary != address(0), "MEMEAuction::create: auction does not exist"); require(now >= auction.auctionEnd, "MEMEAuction::emergencyWithdraw: the auction has not ended"); require(!auction.auctionEnded, "MEMEAuction::emergencyWithdraw: auction ended and item sent"); _emergencyWithdraw(auction.highestBidder, id); emit Withdrawn(auction.highestBidder, id, auction.highestBid); } function end(uint256 id) public nonReentrant { AuctionInfo storage auction = auctionsById[id]; require(auction.beneficiary != address(0), "MEMEAuction::end: auction does not exist"); require(now >= auction.auctionEnd, "MEMEAuction::end: the auction has not ended"); require(!auction.auctionEnded, "MEMEAuction::end: auction already ended"); auction.auctionEnded = true; _end(id, auction.highestBidder, auction.beneficiary, runner, auction.fee, auction.highestBid); IERC1155(memeLtdAddress).safeTransferFrom(address(this), auction.highestBidder, auction.nft, 1, ""); emit Ended(auction.highestBidder, id, auction.highestBid); } function onERC1155Received( address _operator, address, // _from uint256, // _id uint256, // _amount bytes memory // _data ) public returns (bytes4) { require(msg.sender == address(memeLtdAddress), "MEMEAuction::onERC1155BatchReceived:: invalid token address"); require(_operator == address(this), "MEMEAuction::onERC1155BatchReceived:: operator must be auction contract"); // Return success return this.onERC1155Received.selector; } function onERC1155BatchReceived( address _operator, address, // _from, uint256[] memory, // _ids, uint256[] memory, // _amounts, bytes memory // _data ) public returns (bytes4) { require(msg.sender == address(memeLtdAddress), "MEMEAuction::onERC1155BatchReceived:: invalid token address"); require(_operator == address(this), "MEMEAuction::onERC1155BatchReceived:: operator must be auction contract"); // Return success return this.onERC1155BatchReceived.selector; } function supportsInterface(bytes4 interfaceID) external view returns (bool) { return interfaceID == 0x01ffc9a7 || // ERC-165 support interfaceID == 0x4e2312e0; // ERC-1155 `ERC1155TokenReceiver` support } }
Contract Security Audit
- No Contract Security Audit Submitted- Submit Audit Here
[{"inputs":[{"internalType":"address","name":"_runner","type":"address"},{"internalType":"address","name":"_memeAddress","type":"address"},{"internalType":"address","name":"_memeLtdAddress","type":"address"}],"payable":false,"stateMutability":"nonpayable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"user","type":"address"},{"indexed":true,"internalType":"uint256","name":"id","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"amount","type":"uint256"}],"name":"BidPlaced","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"user","type":"address"},{"indexed":true,"internalType":"uint256","name":"id","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"amount","type":"uint256"}],"name":"Ended","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"previousOwner","type":"address"},{"indexed":true,"internalType":"address","name":"newOwner","type":"address"}],"name":"OwnershipTransferred","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"user","type":"address"},{"indexed":true,"internalType":"uint256","name":"id","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"amount","type":"uint256"}],"name":"Withdrawn","type":"event"},{"constant":true,"inputs":[{"internalType":"uint256","name":"id","type":"uint256"}],"name":"auctionEnd","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"internalType":"uint256","name":"id","type":"uint256"}],"name":"auctionStart","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"internalType":"uint256","name":"","type":"uint256"}],"name":"auctions","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"internalType":"uint256","name":"","type":"uint256"}],"name":"auctionsById","outputs":[{"internalType":"address","name":"beneficiary","type":"address"},{"internalType":"uint256","name":"fee","type":"uint256"},{"internalType":"uint256","name":"auctionStart","type":"uint256"},{"internalType":"uint256","name":"auctionEnd","type":"uint256"},{"internalType":"uint256","name":"originalAuctionEnd","type":"uint256"},{"internalType":"uint256","name":"extension","type":"uint256"},{"internalType":"uint256","name":"nft","type":"uint256"},{"internalType":"address","name":"highestBidder","type":"address"},{"internalType":"uint256","name":"highestBid","type":"uint256"},{"internalType":"bool","name":"auctionEnded","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"internalType":"address","name":"account","type":"address"},{"internalType":"uint256","name":"id","type":"uint256"}],"name":"balanceOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"internalType":"uint256","name":"id","type":"uint256"}],"name":"beneficiary","outputs":[{"internalType":"address","name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"internalType":"uint256","name":"id","type":"uint256"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"bid","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"internalType":"uint256","name":"id","type":"uint256"},{"internalType":"address","name":"beneficiaryAddress","type":"address"},{"internalType":"uint256","name":"fee","type":"uint256"},{"internalType":"uint256","name":"start","type":"uint256"},{"internalType":"uint256","name":"duration","type":"uint256"},{"internalType":"uint256","name":"extension","type":"uint256"}],"name":"create","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"internalType":"uint256","name":"id","type":"uint256"}],"name":"emergencyWithdraw","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"internalType":"uint256","name":"id","type":"uint256"}],"name":"end","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[{"internalType":"uint256","name":"id","type":"uint256"}],"name":"ended","outputs":[{"internalType":"bool","name":"","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"internalType":"uint256","name":"id","type":"uint256"}],"name":"highestBid","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"internalType":"uint256","name":"id","type":"uint256"}],"name":"highestBidder","outputs":[{"internalType":"address","name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"isOwner","outputs":[{"internalType":"bool","name":"","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"meme","outputs":[{"internalType":"contract IERC20","name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"memeLtdAddress","outputs":[{"internalType":"address","name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"internalType":"uint256","name":"id","type":"uint256"}],"name":"memeLtdNft","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"internalType":"address","name":"_operator","type":"address"},{"internalType":"address","name":"","type":"address"},{"internalType":"uint256[]","name":"","type":"uint256[]"},{"internalType":"uint256[]","name":"","type":"uint256[]"},{"internalType":"bytes","name":"","type":"bytes"}],"name":"onERC1155BatchReceived","outputs":[{"internalType":"bytes4","name":"","type":"bytes4"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"internalType":"address","name":"_operator","type":"address"},{"internalType":"address","name":"","type":"address"},{"internalType":"uint256","name":"","type":"uint256"},{"internalType":"uint256","name":"","type":"uint256"},{"internalType":"bytes","name":"","type":"bytes"}],"name":"onERC1155Received","outputs":[{"internalType":"bytes4","name":"","type":"bytes4"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[],"name":"renounceOwnership","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"runner","outputs":[{"internalType":"address","name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"internalType":"uint256","name":"id","type":"uint256"}],"name":"runnerFee","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"setRunnerAddress","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[{"internalType":"bytes4","name":"interfaceID","type":"bytes4"}],"name":"supportsInterface","outputs":[{"internalType":"bool","name":"","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"internalType":"uint256","name":"id","type":"uint256"}],"name":"totalDeposits","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"totalSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"internalType":"address","name":"newOwner","type":"address"}],"name":"transferOwnership","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"internalType":"uint256","name":"id","type":"uint256"}],"name":"withdraw","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"}]
Contract Creation Code
608060405234801561001057600080fd5b5060405161270d38038061270d8339818101604052606081101561003357600080fd5b50805160208201516040909201519091908160006100586001600160e01b0361010a16565b600080546001600160a01b0319166001600160a01b0383169081178255604051929350917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908290a350600080547401000000000000000000000000000000000000000060ff60a01b19909116179055600180546001600160a01b03199081166001600160a01b039384161790915560068054821695831695909517909455600580549094169116179091555061010e565b3390565b6125f08061011d6000396000f3fe608060405234801561001057600080fd5b50600436106101ce5760003560e01c80635daa316011610104578063b14c63c5116100a2578063e21bcb7a11610071578063e21bcb7a146106fa578063ebee0eb614610717578063f23a6e611461073d578063f2fde38b14610808576101ce565b8063b14c63c514610443578063b2b09ad914610460578063bc197c81146104e1578063e0533f5e146106dd576101ce565b80637a8ca615116100de5780637a8ca6151461040e578063861a3689146104165780638da5cb5b146104335780638f32d59b1461043b576101ce565b80635daa3160146103a5578063715018a6146103c2578063715ecf47146103ca576101ce565b8063372af1b5116101715780635312ea8e1161014b5780635312ea8e14610340578063571a26a01461035d578063598647f81461037a5780635aa490951461039d576101ce565b8063372af1b5146102e257806344097c48146102ff578063451df52e14610323576101ce565b806318160ddd116101ad57806318160ddd14610283578063242f1bf31461028b5780632e1a7d4d146102a857806332246e9f146102c5576101ce565b8062fdd58e146101d357806301ffc9a7146102115780630ad2452814610264575b600080fd5b6101ff600480360360408110156101e957600080fd5b506001600160a01b03813516906020013561082e565b60408051918252519081900360200190f35b6102506004803603602081101561022757600080fd5b50357fffffffff0000000000000000000000000000000000000000000000000000000016610858565b604080519115158252519081900360200190f35b6102816004803603602081101561027a57600080fd5b50356108ed565b005b6101ff610bf3565b6101ff600480360360208110156102a157600080fd5b5035610bf9565b610281600480360360208110156102be57600080fd5b5035610c0e565b6101ff600480360360208110156102db57600080fd5b5035610e14565b6101ff600480360360208110156102f857600080fd5b5035610e29565b610307610e3b565b604080516001600160a01b039092168252519081900360200190f35b6103076004803603602081101561033957600080fd5b5035610e4a565b6102816004803603602081101561035657600080fd5b5035610e69565b6101ff6004803603602081101561037357600080fd5b5035611002565b6102816004803603604081101561039057600080fd5b5080359060200135611020565b6103076112f4565b610307600480360360208110156103bb57600080fd5b5035611303565b61028161131e565b610281600480360360c08110156103e057600080fd5b508035906001600160a01b036020820135169060408101359060608101359060808101359060a001356113d9565b61030761163e565b6102506004803603602081101561042c57600080fd5b503561164d565b610307611665565b610250611674565b6101ff6004803603602081101561045957600080fd5b5035611698565b61047d6004803603602081101561047657600080fd5b50356116ad565b604080516001600160a01b039b8c168152602081019a909a52898101989098526060890196909652608088019490945260a087019290925260c086015290941660e08401526101008301939093529115156101208201529051908190036101400190f35b6106a8600480360360a08110156104f757600080fd5b6001600160a01b03823581169260208101359091169181019060608101604082013564010000000081111561052b57600080fd5b82018360208201111561053d57600080fd5b8035906020019184602083028401116401000000008311171561055f57600080fd5b91908080602002602001604051908101604052809392919081815260200183836020028082843760009201919091525092959493602081019350359150506401000000008111156105af57600080fd5b8201836020820111156105c157600080fd5b803590602001918460208302840111640100000000831117156105e357600080fd5b919080806020026020016040519081016040528093929190818152602001838360200280828437600092019190915250929594936020810193503591505064010000000081111561063357600080fd5b82018360208201111561064557600080fd5b8035906020019184600183028401116401000000008311171561066757600080fd5b91908080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525092955061170e945050505050565b604080517fffffffff000000000000000000000000000000000000000000000000000000009092168252519081900360200190f35b6101ff600480360360208110156106f357600080fd5b50356117cc565b6101ff6004803603602081101561071057600080fd5b50356117e1565b6102816004803603602081101561072d57600080fd5b50356001600160a01b03166117f6565b6106a8600480360360a081101561075357600080fd5b6001600160a01b03823581169260208101359091169160408201359160608101359181019060a08101608082013564010000000081111561079357600080fd5b8201836020820111156107a557600080fd5b803590602001918460018302840111640100000000831117156107c757600080fd5b91908080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250929550611889945050505050565b6102816004803603602081101561081e57600080fd5b50356001600160a01b0316611947565b60008181526003602090815260408083206001600160a01b03861684529091529020545b92915050565b60007f01ffc9a7000000000000000000000000000000000000000000000000000000007fffffffff00000000000000000000000000000000000000000000000000000000831614806108525750507fffffffff00000000000000000000000000000000000000000000000000000000167f4e2312e0000000000000000000000000000000000000000000000000000000001490565b60005474010000000000000000000000000000000000000000900460ff1661095c576040805162461bcd60e51b815260206004820152601f60248201527f5265656e7472616e637947756172643a207265656e7472616e742063616c6c00604482015290519081900360640190fd5b600080547fffffffffffffffffffffff00ffffffffffffffffffffffffffffffffffffffff16815581815260076020526040902080546001600160a01b03166109d65760405162461bcd60e51b81526004018080602001828103825260288152602001806123206028913960400191505060405180910390fd5b8060030154421015610a195760405162461bcd60e51b815260040180806020018281038252602b81526020018061248b602b913960400191505060405180910390fd5b600981015460ff1615610a5d5760405162461bcd60e51b815260040180806020018281038252602781526020018061223f6027913960400191505060405180910390fd5b6009810180547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0016600190811790915560078201548254600654928401546008850154610abd9487946001600160a01b03908116948116939116916119ac565b60055460078201546006830154604080517ff242432a0000000000000000000000000000000000000000000000000000000081523060048201526001600160a01b03938416602482015260448101929092526001606483015260a06084830152600060a483018190529051929093169263f242432a9260e48084019382900301818387803b158015610b4e57600080fd5b505af1158015610b62573d6000803e3d6000fd5b5050506007820154600883015460408051918252518593506001600160a01b03909216917fc6d99bc4696a33c554dbcc4e3d8af9493385fe991203d21d8e08a8e78bd34c269181900360200190a35050600080547fffffffffffffffffffffff00ffffffffffffffffffffffffffffffffffffffff1674010000000000000000000000000000000000000000179055565b60025490565b60009081526007602052604090206006015490565b60005474010000000000000000000000000000000000000000900460ff16610c7d576040805162461bcd60e51b815260206004820152601f60248201527f5265656e7472616e637947756172643a207265656e7472616e742063616c6c00604482015290519081900360640190fd5b600080547fffffffffffffffffffffff00ffffffffffffffffffffffffffffffffffffffff16815581815260076020526040812090610cbc338461082e565b82549091506001600160a01b0316610d055760405162461bcd60e51b815260040180806020018281038252602d815260200180612548602d913960400191505060405180910390fd5b60008111610d445760405162461bcd60e51b815260040180806020018281038252602881526020018061237b6028913960400191505060405180910390fd5b60078201546001600160a01b0316331415610d905760405162461bcd60e51b81526004018080602001828103825260458152602001806122db6045913960600191505060405180910390fd5b610d9983611bd3565b604080518281529051849133917f92ccf450a286a957af52509bc1c9939d1a6a481783e142e41e2499f0bb66ebc69181900360200190a35050600080547fffffffffffffffffffffff00ffffffffffffffffffffffffffffffffffffffff167401000000000000000000000000000000000000000017905550565b60009081526007602052604090206003015490565b60009081526004602052604090205490565b6001546001600160a01b031681565b600090815260076020819052604090912001546001600160a01b031690565b610e71611674565b610ec2576040805162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604482015290519081900360640190fd5b600081815260076020526040902080546001600160a01b0316610f165760405162461bcd60e51b815260040180806020018281038252602b81526020018061251d602b913960400191505060405180910390fd5b8060030154421015610f595760405162461bcd60e51b81526004018080602001828103825260398152602001806124b66039913960400191505060405180910390fd5b600981015460ff1615610f9d5760405162461bcd60e51b815260040180806020018281038252603b81526020018061242f603b913960400191505060405180910390fd5b6007810154610fb5906001600160a01b031683611d02565b60078101546008820154604080519182525184926001600160a01b0316917f92ccf450a286a957af52509bc1c9939d1a6a481783e142e41e2499f0bb66ebc6919081900360200190a35050565b6008818154811061100f57fe5b600091825260209091200154905081565b60005474010000000000000000000000000000000000000000900460ff1661108f576040805162461bcd60e51b815260206004820152601f60248201527f5265656e7472616e637947756172643a207265656e7472616e742063616c6c00604482015290519081900360640190fd5b600080547fffffffffffffffffffffff00ffffffffffffffffffffffffffffffffffffffff16815582815260076020526040902080546001600160a01b03166111095760405162461bcd60e51b81526004018080602001828103825260288152602001806123a36028913960400191505060405180910390fd5b806002015442101561114c5760405162461bcd60e51b81526004018080602001828103825260298152602001806123cb6029913960400191505060405180910390fd5b806003015442111561118f5760405162461bcd60e51b81526004018080602001828103825260238152602001806122666023913960400191505060405180910390fd5b60006111ab61119e338661082e565b849063ffffffff611e5216565b9050816008015481116111ef5760405162461bcd60e51b815260040180806020018281038252602e8152602001806124ef602e913960400191505060405180910390fd5b6007820180547fffffffffffffffffffffffff000000000000000000000000000000000000000016331790556008820181905560058201541580159061124d57506005820154600383015461124a904263ffffffff611eb316565b11155b1561126e57600582015461126890429063ffffffff611e5216565b60038301555b6112788484611ef5565b604080518481529051859133917fdf8644c0a4c21ed214ce69f395675b3a5fcd1039083daea5058898de40ea31499181900360200190a35050600080547fffffffffffffffffffffff00ffffffffffffffffffffffffffffffffffffffff16740100000000000000000000000000000000000000001790555050565b6005546001600160a01b031681565b6000908152600760205260409020546001600160a01b031690565b611326611674565b611377576040805162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604482015290519081900360640190fd5b600080546040516001600160a01b03909116907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908390a3600080547fffffffffffffffffffffffff0000000000000000000000000000000000000000169055565b6113e1611674565b611432576040805162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604482015290519081900360640190fd5b600086815260076020526040902080546001600160a01b0316156114875760405162461bcd60e51b815260040180806020018281038252602c815260200180612289602c913960400191505060405180910390fd5b80547fffffffffffffffffffffffff0000000000000000000000000000000000000000166001600160a01b03871617815560018101859055600281018490556114d584620151808502611e52565b60038201556114ef8462015180850263ffffffff611e5216565b600480830191909155603c8302600580840191909155600880546001818101835560009283527ff3f7a9fe364faab93b216da50a3214154f22a0a2b415b23a84c8169e8b636ee39091018b90559154604080517fb09ddf7b0000000000000000000000000000000000000000000000000000000081529485018490526024850193909352608060448501526084840182905260c0606485015260c48401829052915190926001600160a01b039092169163b09ddf7b9161010480830192602092919082900301818787803b1580156115c657600080fd5b505af11580156115da573d6000803e3d6000fd5b505050506040513d60208110156115f057600080fd5b50519050806116305760405162461bcd60e51b81526004018080602001828103825260338152602001806123486033913960400191505060405180910390fd5b600690910155505050505050565b6006546001600160a01b031681565b60009081526007602052604090206003015442101590565b6000546001600160a01b031690565b600080546001600160a01b0316611689611feb565b6001600160a01b031614905090565b60009081526007602052604090206008015490565b600760208190526000918252604090912080546001820154600283015460038401546004850154600586015460068701549787015460088801546009909801546001600160a01b039788169996989597949693959294909116919060ff168a565b6005546000906001600160a01b0316331461175a5760405162461bcd60e51b815260040180806020018281038252603b8152602001806123f4603b913960400191505060405180910390fd5b6001600160a01b03861630146117a15760405162461bcd60e51b81526004018080602001828103825260478152602001806125756047913960600191505060405180910390fd5b507fbc197c810000000000000000000000000000000000000000000000000000000095945050505050565b60009081526007602052604090206001015490565b60009081526007602052604090206002015490565b6117fe611674565b61184f576040805162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604482015290519081900360640190fd5b600680547fffffffffffffffffffffffff0000000000000000000000000000000000000000166001600160a01b0392909216919091179055565b6005546000906001600160a01b031633146118d55760405162461bcd60e51b815260040180806020018281038252603b8152602001806123f4603b913960400191505060405180910390fd5b6001600160a01b038616301461191c5760405162461bcd60e51b81526004018080602001828103825260478152602001806125756047913960600191505060405180910390fd5b507ff23a6e610000000000000000000000000000000000000000000000000000000095945050505050565b61194f611674565b6119a0576040805162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604482015290519081900360640190fd5b6119a981611fef565b50565b60008681526003602090815260408083206001600160a01b03891684529091529020548181146119db57600080fd5b6002546119ee908363ffffffff611eb316565b6002556000611a146064611a08858763ffffffff6120a716565b9063ffffffff61210016565b600089815260046020526040902054909150611a36908463ffffffff611eb316565b600089815260046020908152604080832093909355600381528282206001600160a01b038b16835290522054611a72908463ffffffff611eb316565b60008981526003602090815260408083206001600160a01b03808d1685529252909120919091556001541663a9059cbb87611ab3868563ffffffff611eb316565b6040518363ffffffff1660e01b815260040180836001600160a01b03166001600160a01b0316815260200182815260200192505050602060405180830381600087803b158015611b0257600080fd5b505af1158015611b16573d6000803e3d6000fd5b505050506040513d6020811015611b2c57600080fd5b5050600154604080517fa9059cbb0000000000000000000000000000000000000000000000000000000081526001600160a01b038881166004830152602482018590529151919092169163a9059cbb9160448083019260209291908290030181600087803b158015611b9d57600080fd5b505af1158015611bb1573d6000803e3d6000fd5b505050506040513d6020811015611bc757600080fd5b50505050505050505050565b6000611bdf338361082e565b600254909150611bf5908263ffffffff611eb316565b600255600082815260046020526040902054611c17908263ffffffff611eb316565b6000838152600460209081526040808320939093556003815282822033835290522054611c4a908263ffffffff611eb316565b6000838152600360209081526040808320338085529083528184209490945560015481517fa9059cbb00000000000000000000000000000000000000000000000000000000815260048101959095526024850186905290516001600160a01b039091169363a9059cbb9360448083019493928390030190829087803b158015611cd257600080fd5b505af1158015611ce6573d6000803e3d6000fd5b505050506040513d6020811015611cfc57600080fd5b50505050565b60008181526003602090815260408083206001600160a01b0386168452909152902054600254611d38908263ffffffff611eb316565b600255600082815260046020526040902054611d5a908263ffffffff611eb316565b600083815260046020908152604080832093909355600381528282206001600160a01b038716835290522054611d96908263ffffffff611eb316565b60008381526003602090815260408083206001600160a01b038089168086529184528285209590955560015482517fa9059cbb0000000000000000000000000000000000000000000000000000000081526004810192909252602482018790529151919094169363a9059cbb9360448083019493928390030190829087803b158015611e2157600080fd5b505af1158015611e35573d6000803e3d6000fd5b505050506040513d6020811015611e4b57600080fd5b5050505050565b600082820183811015611eac576040805162461bcd60e51b815260206004820152601b60248201527f536166654d6174683a206164646974696f6e206f766572666c6f770000000000604482015290519081900360640190fd5b9392505050565b6000611eac83836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250612142565b600254611f08908263ffffffff611e5216565b600255600082815260046020526040902054611f2a908263ffffffff611e5216565b6000838152600460209081526040808320939093556003815282822033835290522054611f5d908263ffffffff611e5216565b6000838152600360209081526040808320338085529083528184209490945560015481517f23b872dd00000000000000000000000000000000000000000000000000000000815260048101959095523060248601526044850186905290516001600160a01b03909116936323b872dd9360648083019493928390030190829087803b158015611cd257600080fd5b3390565b6001600160a01b0381166120345760405162461bcd60e51b81526004018080602001828103825260268152602001806122b56026913960400191505060405180910390fd5b600080546040516001600160a01b03808516939216917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e091a3600080547fffffffffffffffffffffffff0000000000000000000000000000000000000000166001600160a01b0392909216919091179055565b6000826120b657506000610852565b828202828482816120c357fe5b0414611eac5760405162461bcd60e51b815260040180806020018281038252602181526020018061246a6021913960400191505060405180910390fd5b6000611eac83836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f0000000000008152506121d9565b600081848411156121d15760405162461bcd60e51b81526004018080602001828103825283818151815260200191508051906020019080838360005b8381101561219657818101518382015260200161217e565b50505050905090810190601f1680156121c35780820380516001836020036101000a031916815260200191505b509250505060405180910390fd5b505050900390565b600081836122285760405162461bcd60e51b815260206004820181815283516024840152835190928392604490910191908501908083836000831561219657818101518382015260200161217e565b50600083858161223457fe5b049594505050505056fe4d454d4541756374696f6e3a3a656e643a2061756374696f6e20616c726561647920656e6465644d454d4541756374696f6e3a3a6269643a2061756374696f6e2068617320656e6465644d454d4541756374696f6e3a3a6372656174653a2061756374696f6e20616c726561647920637265617465644f776e61626c653a206e6577206f776e657220697320746865207a65726f20616464726573734d454d4541756374696f6e3a3a77697468647261773a20796f75206172652074686520686967686573742062696464657220616e642063616e6e6f742077697468647261774d454d4541756374696f6e3a3a656e643a2061756374696f6e20646f6573206e6f742065786973744d454d4541756374696f6e3a3a6372656174653a20455243313135352063726561746520646964206e6f7420737563636565644d454d4541756374696f6e3a3a77697468647261773a2063616e6e6f7420776974686472617720304d454d4541756374696f6e3a3a6269643a2061756374696f6e20646f6573206e6f742065786973744d454d4541756374696f6e3a3a6269643a2061756374696f6e20686173206e6f7420737461727465644d454d4541756374696f6e3a3a6f6e45524331313535426174636852656365697665643a3a20696e76616c696420746f6b656e20616464726573734d454d4541756374696f6e3a3a656d657267656e637957697468647261773a2061756374696f6e20656e64656420616e64206974656d2073656e74536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f774d454d4541756374696f6e3a3a656e643a207468652061756374696f6e20686173206e6f7420656e6465644d454d4541756374696f6e3a3a656d657267656e637957697468647261773a207468652061756374696f6e20686173206e6f7420656e6465644d454d4541756374696f6e3a3a6269643a20626964206973206c657373207468616e2068696768657374206269644d454d4541756374696f6e3a3a6372656174653a2061756374696f6e20646f6573206e6f742065786973744d454d4541756374696f6e3a3a77697468647261773a2061756374696f6e20646f6573206e6f742065786973744d454d4541756374696f6e3a3a6f6e45524331313535426174636852656365697665643a3a206f70657261746f72206d7573742062652061756374696f6e20636f6e7472616374a265627a7a72315820257fd7df0e7def56c7b417b9db60e870c3ab06a859eee0fc467b9d5c13e23a1d64736f6c634300050c0032000000000000000000000000214bc6a17e022cff3676d3979b748f2940317957000000000000000000000000d5525d397898e5502075ea5e830d8914f6f0affe000000000000000000000000e4605d46fd0b3f8329d936a8b258d69276cba264
Deployed Bytecode
0x608060405234801561001057600080fd5b50600436106101ce5760003560e01c80635daa316011610104578063b14c63c5116100a2578063e21bcb7a11610071578063e21bcb7a146106fa578063ebee0eb614610717578063f23a6e611461073d578063f2fde38b14610808576101ce565b8063b14c63c514610443578063b2b09ad914610460578063bc197c81146104e1578063e0533f5e146106dd576101ce565b80637a8ca615116100de5780637a8ca6151461040e578063861a3689146104165780638da5cb5b146104335780638f32d59b1461043b576101ce565b80635daa3160146103a5578063715018a6146103c2578063715ecf47146103ca576101ce565b8063372af1b5116101715780635312ea8e1161014b5780635312ea8e14610340578063571a26a01461035d578063598647f81461037a5780635aa490951461039d576101ce565b8063372af1b5146102e257806344097c48146102ff578063451df52e14610323576101ce565b806318160ddd116101ad57806318160ddd14610283578063242f1bf31461028b5780632e1a7d4d146102a857806332246e9f146102c5576101ce565b8062fdd58e146101d357806301ffc9a7146102115780630ad2452814610264575b600080fd5b6101ff600480360360408110156101e957600080fd5b506001600160a01b03813516906020013561082e565b60408051918252519081900360200190f35b6102506004803603602081101561022757600080fd5b50357fffffffff0000000000000000000000000000000000000000000000000000000016610858565b604080519115158252519081900360200190f35b6102816004803603602081101561027a57600080fd5b50356108ed565b005b6101ff610bf3565b6101ff600480360360208110156102a157600080fd5b5035610bf9565b610281600480360360208110156102be57600080fd5b5035610c0e565b6101ff600480360360208110156102db57600080fd5b5035610e14565b6101ff600480360360208110156102f857600080fd5b5035610e29565b610307610e3b565b604080516001600160a01b039092168252519081900360200190f35b6103076004803603602081101561033957600080fd5b5035610e4a565b6102816004803603602081101561035657600080fd5b5035610e69565b6101ff6004803603602081101561037357600080fd5b5035611002565b6102816004803603604081101561039057600080fd5b5080359060200135611020565b6103076112f4565b610307600480360360208110156103bb57600080fd5b5035611303565b61028161131e565b610281600480360360c08110156103e057600080fd5b508035906001600160a01b036020820135169060408101359060608101359060808101359060a001356113d9565b61030761163e565b6102506004803603602081101561042c57600080fd5b503561164d565b610307611665565b610250611674565b6101ff6004803603602081101561045957600080fd5b5035611698565b61047d6004803603602081101561047657600080fd5b50356116ad565b604080516001600160a01b039b8c168152602081019a909a52898101989098526060890196909652608088019490945260a087019290925260c086015290941660e08401526101008301939093529115156101208201529051908190036101400190f35b6106a8600480360360a08110156104f757600080fd5b6001600160a01b03823581169260208101359091169181019060608101604082013564010000000081111561052b57600080fd5b82018360208201111561053d57600080fd5b8035906020019184602083028401116401000000008311171561055f57600080fd5b91908080602002602001604051908101604052809392919081815260200183836020028082843760009201919091525092959493602081019350359150506401000000008111156105af57600080fd5b8201836020820111156105c157600080fd5b803590602001918460208302840111640100000000831117156105e357600080fd5b919080806020026020016040519081016040528093929190818152602001838360200280828437600092019190915250929594936020810193503591505064010000000081111561063357600080fd5b82018360208201111561064557600080fd5b8035906020019184600183028401116401000000008311171561066757600080fd5b91908080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525092955061170e945050505050565b604080517fffffffff000000000000000000000000000000000000000000000000000000009092168252519081900360200190f35b6101ff600480360360208110156106f357600080fd5b50356117cc565b6101ff6004803603602081101561071057600080fd5b50356117e1565b6102816004803603602081101561072d57600080fd5b50356001600160a01b03166117f6565b6106a8600480360360a081101561075357600080fd5b6001600160a01b03823581169260208101359091169160408201359160608101359181019060a08101608082013564010000000081111561079357600080fd5b8201836020820111156107a557600080fd5b803590602001918460018302840111640100000000831117156107c757600080fd5b91908080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250929550611889945050505050565b6102816004803603602081101561081e57600080fd5b50356001600160a01b0316611947565b60008181526003602090815260408083206001600160a01b03861684529091529020545b92915050565b60007f01ffc9a7000000000000000000000000000000000000000000000000000000007fffffffff00000000000000000000000000000000000000000000000000000000831614806108525750507fffffffff00000000000000000000000000000000000000000000000000000000167f4e2312e0000000000000000000000000000000000000000000000000000000001490565b60005474010000000000000000000000000000000000000000900460ff1661095c576040805162461bcd60e51b815260206004820152601f60248201527f5265656e7472616e637947756172643a207265656e7472616e742063616c6c00604482015290519081900360640190fd5b600080547fffffffffffffffffffffff00ffffffffffffffffffffffffffffffffffffffff16815581815260076020526040902080546001600160a01b03166109d65760405162461bcd60e51b81526004018080602001828103825260288152602001806123206028913960400191505060405180910390fd5b8060030154421015610a195760405162461bcd60e51b815260040180806020018281038252602b81526020018061248b602b913960400191505060405180910390fd5b600981015460ff1615610a5d5760405162461bcd60e51b815260040180806020018281038252602781526020018061223f6027913960400191505060405180910390fd5b6009810180547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0016600190811790915560078201548254600654928401546008850154610abd9487946001600160a01b03908116948116939116916119ac565b60055460078201546006830154604080517ff242432a0000000000000000000000000000000000000000000000000000000081523060048201526001600160a01b03938416602482015260448101929092526001606483015260a06084830152600060a483018190529051929093169263f242432a9260e48084019382900301818387803b158015610b4e57600080fd5b505af1158015610b62573d6000803e3d6000fd5b5050506007820154600883015460408051918252518593506001600160a01b03909216917fc6d99bc4696a33c554dbcc4e3d8af9493385fe991203d21d8e08a8e78bd34c269181900360200190a35050600080547fffffffffffffffffffffff00ffffffffffffffffffffffffffffffffffffffff1674010000000000000000000000000000000000000000179055565b60025490565b60009081526007602052604090206006015490565b60005474010000000000000000000000000000000000000000900460ff16610c7d576040805162461bcd60e51b815260206004820152601f60248201527f5265656e7472616e637947756172643a207265656e7472616e742063616c6c00604482015290519081900360640190fd5b600080547fffffffffffffffffffffff00ffffffffffffffffffffffffffffffffffffffff16815581815260076020526040812090610cbc338461082e565b82549091506001600160a01b0316610d055760405162461bcd60e51b815260040180806020018281038252602d815260200180612548602d913960400191505060405180910390fd5b60008111610d445760405162461bcd60e51b815260040180806020018281038252602881526020018061237b6028913960400191505060405180910390fd5b60078201546001600160a01b0316331415610d905760405162461bcd60e51b81526004018080602001828103825260458152602001806122db6045913960600191505060405180910390fd5b610d9983611bd3565b604080518281529051849133917f92ccf450a286a957af52509bc1c9939d1a6a481783e142e41e2499f0bb66ebc69181900360200190a35050600080547fffffffffffffffffffffff00ffffffffffffffffffffffffffffffffffffffff167401000000000000000000000000000000000000000017905550565b60009081526007602052604090206003015490565b60009081526004602052604090205490565b6001546001600160a01b031681565b600090815260076020819052604090912001546001600160a01b031690565b610e71611674565b610ec2576040805162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604482015290519081900360640190fd5b600081815260076020526040902080546001600160a01b0316610f165760405162461bcd60e51b815260040180806020018281038252602b81526020018061251d602b913960400191505060405180910390fd5b8060030154421015610f595760405162461bcd60e51b81526004018080602001828103825260398152602001806124b66039913960400191505060405180910390fd5b600981015460ff1615610f9d5760405162461bcd60e51b815260040180806020018281038252603b81526020018061242f603b913960400191505060405180910390fd5b6007810154610fb5906001600160a01b031683611d02565b60078101546008820154604080519182525184926001600160a01b0316917f92ccf450a286a957af52509bc1c9939d1a6a481783e142e41e2499f0bb66ebc6919081900360200190a35050565b6008818154811061100f57fe5b600091825260209091200154905081565b60005474010000000000000000000000000000000000000000900460ff1661108f576040805162461bcd60e51b815260206004820152601f60248201527f5265656e7472616e637947756172643a207265656e7472616e742063616c6c00604482015290519081900360640190fd5b600080547fffffffffffffffffffffff00ffffffffffffffffffffffffffffffffffffffff16815582815260076020526040902080546001600160a01b03166111095760405162461bcd60e51b81526004018080602001828103825260288152602001806123a36028913960400191505060405180910390fd5b806002015442101561114c5760405162461bcd60e51b81526004018080602001828103825260298152602001806123cb6029913960400191505060405180910390fd5b806003015442111561118f5760405162461bcd60e51b81526004018080602001828103825260238152602001806122666023913960400191505060405180910390fd5b60006111ab61119e338661082e565b849063ffffffff611e5216565b9050816008015481116111ef5760405162461bcd60e51b815260040180806020018281038252602e8152602001806124ef602e913960400191505060405180910390fd5b6007820180547fffffffffffffffffffffffff000000000000000000000000000000000000000016331790556008820181905560058201541580159061124d57506005820154600383015461124a904263ffffffff611eb316565b11155b1561126e57600582015461126890429063ffffffff611e5216565b60038301555b6112788484611ef5565b604080518481529051859133917fdf8644c0a4c21ed214ce69f395675b3a5fcd1039083daea5058898de40ea31499181900360200190a35050600080547fffffffffffffffffffffff00ffffffffffffffffffffffffffffffffffffffff16740100000000000000000000000000000000000000001790555050565b6005546001600160a01b031681565b6000908152600760205260409020546001600160a01b031690565b611326611674565b611377576040805162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604482015290519081900360640190fd5b600080546040516001600160a01b03909116907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908390a3600080547fffffffffffffffffffffffff0000000000000000000000000000000000000000169055565b6113e1611674565b611432576040805162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604482015290519081900360640190fd5b600086815260076020526040902080546001600160a01b0316156114875760405162461bcd60e51b815260040180806020018281038252602c815260200180612289602c913960400191505060405180910390fd5b80547fffffffffffffffffffffffff0000000000000000000000000000000000000000166001600160a01b03871617815560018101859055600281018490556114d584620151808502611e52565b60038201556114ef8462015180850263ffffffff611e5216565b600480830191909155603c8302600580840191909155600880546001818101835560009283527ff3f7a9fe364faab93b216da50a3214154f22a0a2b415b23a84c8169e8b636ee39091018b90559154604080517fb09ddf7b0000000000000000000000000000000000000000000000000000000081529485018490526024850193909352608060448501526084840182905260c0606485015260c48401829052915190926001600160a01b039092169163b09ddf7b9161010480830192602092919082900301818787803b1580156115c657600080fd5b505af11580156115da573d6000803e3d6000fd5b505050506040513d60208110156115f057600080fd5b50519050806116305760405162461bcd60e51b81526004018080602001828103825260338152602001806123486033913960400191505060405180910390fd5b600690910155505050505050565b6006546001600160a01b031681565b60009081526007602052604090206003015442101590565b6000546001600160a01b031690565b600080546001600160a01b0316611689611feb565b6001600160a01b031614905090565b60009081526007602052604090206008015490565b600760208190526000918252604090912080546001820154600283015460038401546004850154600586015460068701549787015460088801546009909801546001600160a01b039788169996989597949693959294909116919060ff168a565b6005546000906001600160a01b0316331461175a5760405162461bcd60e51b815260040180806020018281038252603b8152602001806123f4603b913960400191505060405180910390fd5b6001600160a01b03861630146117a15760405162461bcd60e51b81526004018080602001828103825260478152602001806125756047913960600191505060405180910390fd5b507fbc197c810000000000000000000000000000000000000000000000000000000095945050505050565b60009081526007602052604090206001015490565b60009081526007602052604090206002015490565b6117fe611674565b61184f576040805162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604482015290519081900360640190fd5b600680547fffffffffffffffffffffffff0000000000000000000000000000000000000000166001600160a01b0392909216919091179055565b6005546000906001600160a01b031633146118d55760405162461bcd60e51b815260040180806020018281038252603b8152602001806123f4603b913960400191505060405180910390fd5b6001600160a01b038616301461191c5760405162461bcd60e51b81526004018080602001828103825260478152602001806125756047913960600191505060405180910390fd5b507ff23a6e610000000000000000000000000000000000000000000000000000000095945050505050565b61194f611674565b6119a0576040805162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604482015290519081900360640190fd5b6119a981611fef565b50565b60008681526003602090815260408083206001600160a01b03891684529091529020548181146119db57600080fd5b6002546119ee908363ffffffff611eb316565b6002556000611a146064611a08858763ffffffff6120a716565b9063ffffffff61210016565b600089815260046020526040902054909150611a36908463ffffffff611eb316565b600089815260046020908152604080832093909355600381528282206001600160a01b038b16835290522054611a72908463ffffffff611eb316565b60008981526003602090815260408083206001600160a01b03808d1685529252909120919091556001541663a9059cbb87611ab3868563ffffffff611eb316565b6040518363ffffffff1660e01b815260040180836001600160a01b03166001600160a01b0316815260200182815260200192505050602060405180830381600087803b158015611b0257600080fd5b505af1158015611b16573d6000803e3d6000fd5b505050506040513d6020811015611b2c57600080fd5b5050600154604080517fa9059cbb0000000000000000000000000000000000000000000000000000000081526001600160a01b038881166004830152602482018590529151919092169163a9059cbb9160448083019260209291908290030181600087803b158015611b9d57600080fd5b505af1158015611bb1573d6000803e3d6000fd5b505050506040513d6020811015611bc757600080fd5b50505050505050505050565b6000611bdf338361082e565b600254909150611bf5908263ffffffff611eb316565b600255600082815260046020526040902054611c17908263ffffffff611eb316565b6000838152600460209081526040808320939093556003815282822033835290522054611c4a908263ffffffff611eb316565b6000838152600360209081526040808320338085529083528184209490945560015481517fa9059cbb00000000000000000000000000000000000000000000000000000000815260048101959095526024850186905290516001600160a01b039091169363a9059cbb9360448083019493928390030190829087803b158015611cd257600080fd5b505af1158015611ce6573d6000803e3d6000fd5b505050506040513d6020811015611cfc57600080fd5b50505050565b60008181526003602090815260408083206001600160a01b0386168452909152902054600254611d38908263ffffffff611eb316565b600255600082815260046020526040902054611d5a908263ffffffff611eb316565b600083815260046020908152604080832093909355600381528282206001600160a01b038716835290522054611d96908263ffffffff611eb316565b60008381526003602090815260408083206001600160a01b038089168086529184528285209590955560015482517fa9059cbb0000000000000000000000000000000000000000000000000000000081526004810192909252602482018790529151919094169363a9059cbb9360448083019493928390030190829087803b158015611e2157600080fd5b505af1158015611e35573d6000803e3d6000fd5b505050506040513d6020811015611e4b57600080fd5b5050505050565b600082820183811015611eac576040805162461bcd60e51b815260206004820152601b60248201527f536166654d6174683a206164646974696f6e206f766572666c6f770000000000604482015290519081900360640190fd5b9392505050565b6000611eac83836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250612142565b600254611f08908263ffffffff611e5216565b600255600082815260046020526040902054611f2a908263ffffffff611e5216565b6000838152600460209081526040808320939093556003815282822033835290522054611f5d908263ffffffff611e5216565b6000838152600360209081526040808320338085529083528184209490945560015481517f23b872dd00000000000000000000000000000000000000000000000000000000815260048101959095523060248601526044850186905290516001600160a01b03909116936323b872dd9360648083019493928390030190829087803b158015611cd257600080fd5b3390565b6001600160a01b0381166120345760405162461bcd60e51b81526004018080602001828103825260268152602001806122b56026913960400191505060405180910390fd5b600080546040516001600160a01b03808516939216917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e091a3600080547fffffffffffffffffffffffff0000000000000000000000000000000000000000166001600160a01b0392909216919091179055565b6000826120b657506000610852565b828202828482816120c357fe5b0414611eac5760405162461bcd60e51b815260040180806020018281038252602181526020018061246a6021913960400191505060405180910390fd5b6000611eac83836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f0000000000008152506121d9565b600081848411156121d15760405162461bcd60e51b81526004018080602001828103825283818151815260200191508051906020019080838360005b8381101561219657818101518382015260200161217e565b50505050905090810190601f1680156121c35780820380516001836020036101000a031916815260200191505b509250505060405180910390fd5b505050900390565b600081836122285760405162461bcd60e51b815260206004820181815283516024840152835190928392604490910191908501908083836000831561219657818101518382015260200161217e565b50600083858161223457fe5b049594505050505056fe4d454d4541756374696f6e3a3a656e643a2061756374696f6e20616c726561647920656e6465644d454d4541756374696f6e3a3a6269643a2061756374696f6e2068617320656e6465644d454d4541756374696f6e3a3a6372656174653a2061756374696f6e20616c726561647920637265617465644f776e61626c653a206e6577206f776e657220697320746865207a65726f20616464726573734d454d4541756374696f6e3a3a77697468647261773a20796f75206172652074686520686967686573742062696464657220616e642063616e6e6f742077697468647261774d454d4541756374696f6e3a3a656e643a2061756374696f6e20646f6573206e6f742065786973744d454d4541756374696f6e3a3a6372656174653a20455243313135352063726561746520646964206e6f7420737563636565644d454d4541756374696f6e3a3a77697468647261773a2063616e6e6f7420776974686472617720304d454d4541756374696f6e3a3a6269643a2061756374696f6e20646f6573206e6f742065786973744d454d4541756374696f6e3a3a6269643a2061756374696f6e20686173206e6f7420737461727465644d454d4541756374696f6e3a3a6f6e45524331313535426174636852656365697665643a3a20696e76616c696420746f6b656e20616464726573734d454d4541756374696f6e3a3a656d657267656e637957697468647261773a2061756374696f6e20656e64656420616e64206974656d2073656e74536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f774d454d4541756374696f6e3a3a656e643a207468652061756374696f6e20686173206e6f7420656e6465644d454d4541756374696f6e3a3a656d657267656e637957697468647261773a207468652061756374696f6e20686173206e6f7420656e6465644d454d4541756374696f6e3a3a6269643a20626964206973206c657373207468616e2068696768657374206269644d454d4541756374696f6e3a3a6372656174653a2061756374696f6e20646f6573206e6f742065786973744d454d4541756374696f6e3a3a77697468647261773a2061756374696f6e20646f6573206e6f742065786973744d454d4541756374696f6e3a3a6f6e45524331313535426174636852656365697665643a3a206f70657261746f72206d7573742062652061756374696f6e20636f6e7472616374a265627a7a72315820257fd7df0e7def56c7b417b9db60e870c3ab06a859eee0fc467b9d5c13e23a1d64736f6c634300050c0032
Constructor Arguments (ABI-Encoded and is the last bytes of the Contract Creation Code above)
000000000000000000000000214bc6a17e022cff3676d3979b748f2940317957000000000000000000000000d5525d397898e5502075ea5e830d8914f6f0affe000000000000000000000000e4605d46fd0b3f8329d936a8b258d69276cba264
-----Decoded View---------------
Arg [0] : _runner (address): 0x214bc6A17E022cFF3676d3979b748F2940317957
Arg [1] : _memeAddress (address): 0xD5525D397898e5502075Ea5E830d8914f6F0affe
Arg [2] : _memeLtdAddress (address): 0xe4605d46Fd0B3f8329d936a8b258D69276cBa264
-----Encoded View---------------
3 Constructor Arguments found :
Arg [0] : 000000000000000000000000214bc6a17e022cff3676d3979b748f2940317957
Arg [1] : 000000000000000000000000d5525d397898e5502075ea5e830d8914f6f0affe
Arg [2] : 000000000000000000000000e4605d46fd0b3f8329d936a8b258d69276cba264
Loading...
Loading
Loading...
Loading
Multichain Portfolio | 30 Chains
Chain | Token | Portfolio % | Price | Amount | Value |
---|
Loading...
Loading
[ 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.