Feature Tip: Add private address tag to any address under My Name Tag !
ERC-721
Overview
Max Total Supply
60 Bubbleworld Executive Founders Pass
Holders
6
Market
Volume (24H)
N/A
Min Price (24H)
N/A
Max Price (24H)
N/A
Other Info
Token Contract
Balance
1 Bubbleworld Executive Founders PassLoading...
Loading
Loading...
Loading
Loading...
Loading
# | Exchange | Pair | Price | 24H Volume | % Volume |
---|
Contract Name:
BubblehouseNFT4
Compiler Version
v0.8.14+commit.80d49f37
Optimization Enabled:
Yes with 200 runs
Other Settings:
constantinople EvmVersion
Contract Source Code (Solidity Standard Json-Input format)
// SPDX-License-Identifier: MIT pragma solidity ^0.8.12; // Used to delegate ownership of a contract to another address, to save on unneeded transactions to approve contract use for users interface IOpenSeaProxyRegistry { function proxies(address wallet) external view returns (address proxy); } interface IERC165 { function supportsInterface(bytes4 interfaceId) external view returns (bool); } interface IERC721 is IERC165 { event Transfer(address indexed from, address indexed to, uint256 indexed tokenId); event Approval(address indexed owner, address indexed approved, uint256 indexed tokenId); event ApprovalForAll(address indexed owner, address indexed operator, bool approved); function balanceOf(address owner) external view returns (uint256 balance); function ownerOf(uint256 tokenId) external view returns (address owner); function safeTransferFrom(address from, address to, uint256 tokenId, bytes calldata data) external; function safeTransferFrom(address from, address to, uint256 tokenId) external; function transferFrom(address from, address to, uint256 tokenId) external; function approve(address to, uint256 tokenId) external; function setApprovalForAll(address operator, bool _approved) external; function getApproved(uint256 tokenId) external view returns (address operator); function isApprovedForAll(address owner, address operator) external view returns (bool); } interface IERC721Metadata is IERC721 { function name() external view returns (string memory); function symbol() external view returns (string memory); function tokenURI(uint256 tokenId) external view returns (string memory); } contract BubblehouseNFT4 is IERC165, IERC721, IERC721Metadata { bytes32 private constant _TRANSFER_EVENT_SIGNATURE = 0xddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef; // keccak256(bytes("Transfer(address,address,uint256)")) event OwnershipTransferred(address indexed previousOwner, address indexed newOwner); event ConsecutiveTransfer(uint256 indexed fromTokenId, uint256 toTokenId, address indexed from, address indexed to); // ERC2309 // only non-obvious errors are returned; obvious error conditions just call revert() error TokenBurned(); error TransferFromIncorrectOwner(); error TransferToContractForbidden(); error OverSupplyLimit(); string private _name; string private _symbol; string private _baseMetadataURI; address private _contractOwner; // assigns minter and operator, and adjusts other global settings address private _minter; // the only entity that can mint address private _bubblehouseOperator; // implicitly approved to transfer from all wallets address private _openSeaProxyRegistryAddress; // implicitly approved to transfer from all wallets // Token state bit layout: // - [0..159] `addr` // - [224] `burned` // - [225] `nextInitialized` mapping(uint256 => uint256) private _tokenStates; uint256 private constant _BITMASK_BURNED = 1 << 224; uint256 private constant _BITPOS_NEXT_INITIALIZED = 225; uint256 private constant _BITMASK_NEXT_INITIALIZED = 1 << 225; uint256 private constant _BITMASK_ADDRESS = (1 << 160) - 1; uint256 private constant _BITMASK_BURNED_AND_NEXT_INITIALIZED = (1 << 224) | (1 << 225); mapping(address => uint256) private _walletBalances; mapping(address => mapping(address => bool)) private _walletOperators; mapping(uint256 => address) private _tokenApprovals; uint256 private _stride; uint256 private _totalMinted = 0; uint256 private _burnCounter; uint256 private _supplyLimit; function totalMinted() external view returns (uint256) { return _totalMinted; } function totalSupply() external view returns (uint256) { unchecked { return _totalMinted - _burnCounter; } } modifier onlyContractOwner() { if (msg.sender != _contractOwner) { revert(); } _; } constructor(string memory name_, string memory symbol_, uint64 supplyLimit_, uint64 stride_, uint64 premintQuantity_, address premintOwner_, address owner_, address minter_, address bubblehouseOperator_, address openSeaProxyRegistryAddress_, string memory baseMetadataURI_) { _name = name_; _symbol = symbol_; _supplyLimit = supplyLimit_; _stride = stride_; if (owner_ == address(0)) { _contractOwner = msg.sender; } else { _contractOwner = owner_; } _minter = minter_; _bubblehouseOperator = bubblehouseOperator_; _openSeaProxyRegistryAddress = openSeaProxyRegistryAddress_; _baseMetadataURI = baseMetadataURI_; if (premintQuantity_ != 0) { _premint(premintOwner_, premintQuantity_); } } // --- Inquiries --- function supportsInterface(bytes4 interfaceId) external pure override returns (bool) { return interfaceId == type(IERC721).interfaceId || interfaceId == type(IERC721Metadata).interfaceId || interfaceId == type(IERC165).interfaceId; } function name() external view override returns (string memory) { return _name; } function symbol() external view override returns (string memory) { if (bytes(_symbol).length == 0) { return _name; } else { return _symbol; } } function supplyLimit() external view returns (uint256) { return _supplyLimit; } function stride() external view returns (uint256) { return _stride; } function balanceOf(address wallet) external view override returns (uint256) { if (wallet == address(0)) { revert(); } return _walletBalances[wallet]; } function ownerOf(uint256 tokenId) external view override returns (address) { _revertUnlessValidTokenID(tokenId); uint256 state = _tokenStateOf(tokenId); if ((state & _BITMASK_BURNED) != 0) { revert(); } return address(uint160(state)); } // TODO: do we need this function for some sort of weird interface complience? if not, remove. function baseTokenURI() external view returns (string memory) { return _baseMetadataURI; } function tokenURI(uint256 tokenId) external view override returns (string memory) { _revertUnlessValidTokenID(tokenId); return string.concat(_baseMetadataURI, "/0x", addressToString(address(this)), "/", intToString(tokenId)); } function contractURI() external view returns (string memory) { return string.concat(_baseMetadataURI, "/0x", addressToString(address(this)), "/-1"); } function internalRawTokenState(uint256 tokenId) external view returns (uint256) { return _tokenStates[tokenId]; } function internalRawTokenStates(uint256 start, uint256 end) external view returns (uint256[] memory) { unchecked { if (start == 0) { start = 1; // prevents overflow when computing `end-start+1` below } if (end > _totalMinted) { end = _totalMinted; } if (end < start) { return new uint256[](0); } uint256[] memory result = new uint256[](end - start + 1); for (uint256 i = start; i <= end; ++i) { result[i - start] = _tokenStates[i]; } return result; } } function internalResolvedTokenState(uint256 tokenId) external view returns (uint256) { return _tokenStateOf(tokenId); } function internalResolvedTokenStates(uint256 start, uint256 end) external view returns (uint256[] memory) { unchecked { if (start == 0) { start = 1; // prevents overflow when computing `end-start+1` below } if (end > _totalMinted) { end = _totalMinted; } if (end < start) { return new uint256[](0); } uint256 state = _tokenStateOf(start); uint256[] memory result = new uint256[](end - start + 1); for (uint256 i = start; i <= end; ++i) { uint256 prev = state; state = _tokenStates[i]; if (state == 0) { state = prev; } result[i - start] = state; } return result; } } function tokensOfOwnerIn(address wallet, uint256 start, uint256 end) external view returns (uint256[] memory) { unchecked { if (start == 0) { start = 1; // prevents overflow when computing `end-start+1` below } if (end > _totalMinted) { end = _totalMinted; } uint256 maxCount = _walletBalances[wallet]; if (end < start || maxCount == 0) { return new uint256[](0); } uint256 range = end - start + 1; if (range < maxCount) { maxCount = range; } uint256[] memory tokenIds = new uint256[](maxCount); uint256 outIdx = 0; address currentOwner = address(0); uint256 state = _tokenStateOf(start); if ((state & _BITMASK_BURNED) == 0) { currentOwner = address(uint160(state)); } for (uint256 i = start; i <= end && outIdx != maxCount; ++i) { state = _tokenStates[i]; if (state != 0) { if ((state & _BITMASK_BURNED) != 0) { continue; } currentOwner = address(uint160(state)); } if (currentOwner == wallet) { tokenIds[outIdx++] = i; } } assembly { mstore(tokenIds, outIdx) } // shrink to actual size return tokenIds; } } // --- Mint, Transfer, Burn --- function mint(address to, uint256 quantity) external { if (msg.sender != _minter) revert(); if (quantity == 0) revert(); unchecked { if (to.code.length != 0) revert TransferToContractForbidden(); uint256 oldTotalMinted = _totalMinted; uint256 newTotalMinted = oldTotalMinted + quantity; if (newTotalMinted > _supplyLimit) revert OverSupplyLimit(); uint256 start = oldTotalMinted + 1; _walletBalances[to] += quantity; uint256 toMasked; uint256 newState; assembly { toMasked := and(to, _BITMASK_ADDRESS) newState := or(toMasked, shl(_BITPOS_NEXT_INITIALIZED, eq(quantity, 1))) } if (toMasked == 0) revert(); _tokenStates[start] = newState; // Use assembly to loop and emit the `Transfer` event for gas savings. assembly { log4(0, 0, _TRANSFER_EVENT_SIGNATURE, 0, toMasked, start) let end := add(newTotalMinted, 1) for { let tokenId := add(start, 1) } iszero(eq(tokenId, end)) { tokenId := add(tokenId, 1) } { // Emit the `Transfer` event. Similar to above. log4(0, 0, _TRANSFER_EVENT_SIGNATURE, 0, toMasked, tokenId) } } _totalMinted = newTotalMinted; } } function _premint(address to, uint256 quantity) private { if (quantity == 0) return; if (to == address(0)) revert(); if (to.code.length != 0) revert TransferToContractForbidden(); unchecked { uint256 oldTotalMinted = _totalMinted; uint256 newTotalMinted = oldTotalMinted + quantity; if (newTotalMinted > _supplyLimit) revert OverSupplyLimit(); uint256 start = oldTotalMinted + 1; _walletBalances[to] += quantity; uint256 newState; assembly { newState := or(and(to, _BITMASK_ADDRESS), shl(_BITPOS_NEXT_INITIALIZED, eq(quantity, 1))) } _tokenStates[start] = newState; emit ConsecutiveTransfer(start, start + quantity - 1, address(0), to); _totalMinted = newTotalMinted; } } function safeTransferFrom(address from, address to, uint256 tokenId) external override { transferFrom(from, to, tokenId); } function safeTransferFrom(address from, address to, uint256 tokenId, bytes calldata /*data*/) external override { transferFrom(from, to, tokenId); } function transferFrom(address from, address to, uint256 tokenId) public override { if (to == address(0)) revert(); if (to.code.length != 0) revert TransferToContractForbidden(); _revertUnlessValidTokenID(tokenId); uint256 state = _tokenStateOf(tokenId); if ((state & _BITMASK_BURNED) != 0) revert TokenBurned(); address tokenOwner = address(uint160(state)); if (from != tokenOwner) revert TransferFromIncorrectOwner(); _revertUnlessAllowedToManageToken(_actualSender(), tokenId, tokenOwner); _clearApproval(tokenId, tokenOwner); unchecked { _walletBalances[from] -= 1; _walletBalances[to] += 1; uint256 newState; assembly { newState := or(and(to, _BITMASK_ADDRESS), _BITMASK_NEXT_INITIALIZED) } _tokenStates[tokenId] = newState; // Fill in next token's data if ((state & _BITMASK_NEXT_INITIALIZED) == 0) { uint256 next = tokenId + 1; if (_tokenStates[next] == 0) { if (next <= _totalMinted) { _tokenStates[next] = state; } } } } emit Transfer(from, to, tokenId); } function burn(uint256 tokenId) external { _revertUnlessValidTokenID(tokenId); uint256 state = _tokenStateOf(tokenId); if ((state & _BITMASK_BURNED) != 0) { return; } address tokenOwner = address(uint160(state)); _revertUnlessAllowedToManageToken(_actualSender(), tokenId, tokenOwner); _clearApproval(tokenId, tokenOwner); unchecked { _walletBalances[tokenOwner] -= 1; assembly { state := or(state, _BITMASK_BURNED_AND_NEXT_INITIALIZED) } _tokenStates[tokenId] = state; _burnCounter += 1; } emit Transfer(tokenOwner, address(0), tokenId); } // --- Approvals --- function approve(address to, uint256 tokenId) external override { _revertUnlessValidTokenID(tokenId); uint256 state = _tokenStateOf(tokenId); if ((state & _BITMASK_BURNED) != 0) revert TokenBurned(); address tokenOwner = address(uint160(state)); address actor = _actualSender(); _revertUnlessAllowedToManageToken(actor, tokenId, tokenOwner); _tokenApprovals[tokenId] = to; emit Approval(tokenOwner, to, tokenId); } function getApproved(uint256 tokenId) external view override returns (address) { _revertUnlessValidTokenID(tokenId); return _tokenApprovals[tokenId]; } function setApprovalForAll(address operator, bool approved) external override { address actor = _actualSender(); if (actor == operator) { revert(); } _walletOperators[actor][operator] = approved; emit ApprovalForAll(actor, operator, approved); } function isApprovedForAll(address wallet, address operator) external view override returns (bool) { return _walletOperators[wallet][operator]; } function _clearApproval(uint256 tokenId, address tokenOwner) private { if (_tokenApprovals[tokenId] != address(0)) { _tokenApprovals[tokenId] = address(0); emit Approval(tokenOwner, address(0), tokenId); } } // --- Marketplaces --- function isOpenSeaOperator(address actor, address wallet) private view returns (bool) { if (_openSeaProxyRegistryAddress == address(0)) { return false; } IOpenSeaProxyRegistry proxyRegistry = IOpenSeaProxyRegistry(_openSeaProxyRegistryAddress); return (address(proxyRegistry.proxies(wallet)) == actor); } // -- Access checks --- function _revertUnlessValidTokenID(uint256 tokenId) private view { if (tokenId < 1) { revert(); } if (tokenId > _totalMinted) { revert(); } } // assumes token ID is valid function _revertUnlessAllowedToManageToken(address actor, uint256 tokenId, address wallet) private view { if (actor == wallet) { return; } if (actor == _bubblehouseOperator) { if (_bubblehouseOperator != address(0)) { return; } } if (_walletOperators[wallet][actor]) { return; } if (isOpenSeaOperator(actor, wallet)) { return; } if (_tokenApprovals[tokenId] == actor) { return; } revert(); } // --- Sparse Packed Token Info --- function _tokenStateOf(uint256 tokenId) private view returns (uint256) { uint256 curr = tokenId; unchecked { uint256 state = _tokenStates[curr]; // There will always be a non-zero state before any zero state. while (state == 0) { --curr; state = _tokenStates[curr]; } return state; } } // --- Admin Stuff --- function rename(string calldata name_, string calldata symbol_) external onlyContractOwner { _name = name_; _symbol = symbol_; } function baseMetadataURI() external view returns (string memory) { return _baseMetadataURI; } function setBaseMetadataURI(string calldata newBaseURI) external onlyContractOwner { _baseMetadataURI = newBaseURI; } function replaceContractOwner(address newOwner) external onlyContractOwner { if (newOwner == address(0)) { revert(); } address oldOwner = _contractOwner; if (newOwner == oldOwner) { return; } _contractOwner = newOwner; emit OwnershipTransferred(oldOwner, newOwner); } function bubblehouseOperator() external view returns (address) { return _bubblehouseOperator; } function replaceBubblehouseOperator(address newOperator) external onlyContractOwner { if (_bubblehouseOperator == address(0)) { revert(); } if (newOperator == address(0)) { revert(); } _bubblehouseOperator = newOperator; } // Irevocably disables Bubblehouse operator priviledges. Wallets will need operator approvals // to be managed by the platform after this. function burnBubblehouseOperator() external onlyContractOwner { _bubblehouseOperator = address(0); } function setOpenSeaProxyRegistryAddress(address addr) external onlyContractOwner { _openSeaProxyRegistryAddress = addr; } function owner() external view returns (address) { return _contractOwner; } function minter() external view returns (address) { return _minter; } function replaceMinter(address newMinter) external onlyContractOwner { if (_minter == address(0)) { revert(); } if (newMinter == address(0)) { revert(); } _minter = newMinter; } // Irevocably disables minter priviledges. Nothing can be minted after this. function burnMinter() external onlyContractOwner { _minter = address(0); } function decreaseSupplyLimit(uint64 supplyLimit_) external onlyContractOwner { if (supplyLimit_ >= _supplyLimit) revert(); _supplyLimit = supplyLimit_; } // --- Utils --- // TODO: handle metatransactions in the future if we need to. function _actualSender() private view returns (address) { return msg.sender; } // From @openzeppelin/contracts/utils/Strings.sol function intToString(uint256 value) private pure returns (string memory) { // Inspired by OraclizeAPI's implementation - MIT licence // https://github.com/oraclize/ethereum-api/blob/b42146b063c7d6ee1358846c198246239e9360e8/oraclizeAPI_0.4.25.sol if (value == 0) { return "0"; } uint256 temp = value; uint256 digits; while (temp != 0) { digits++; temp /= 10; } bytes memory buffer = new bytes(digits); while (value != 0) { digits -= 1; buffer[digits] = bytes1(uint8(48 + uint256(value % 10))); value /= 10; } return string(buffer); } function addressToString(address x) private pure returns (string memory) { unchecked { bytes memory s = new bytes(40); for (uint i = 0; i < 20; i++) { bytes1 b = bytes1(uint8(uint(uint160(x)) / (2**(8*(19 - i))))); bytes1 hi = bytes1(uint8(b) / 16); s[2*i] = hexChar(hi); s[2*i+1] = hexChar(bytes1(uint8(b) - 16 * uint8(hi))); } return string(s); } } function hexChar(bytes1 b) private pure returns (bytes1 c) { if (uint8(b) < 10) return bytes1(uint8(b) + 0x30); else return bytes1(uint8(b) + 0x57); } }
{ "remappings": [], "optimizer": { "enabled": true, "runs": 200 }, "evmVersion": "constantinople", "libraries": {}, "outputSelection": { "*": { "*": [ "evm.bytecode", "evm.deployedBytecode", "devdoc", "userdoc", "metadata", "abi" ] } } }
Contract Security Audit
- No Contract Security Audit Submitted- Submit Audit Here
[{"inputs":[{"internalType":"string","name":"name_","type":"string"},{"internalType":"string","name":"symbol_","type":"string"},{"internalType":"uint64","name":"supplyLimit_","type":"uint64"},{"internalType":"uint64","name":"stride_","type":"uint64"},{"internalType":"uint64","name":"premintQuantity_","type":"uint64"},{"internalType":"address","name":"premintOwner_","type":"address"},{"internalType":"address","name":"owner_","type":"address"},{"internalType":"address","name":"minter_","type":"address"},{"internalType":"address","name":"bubblehouseOperator_","type":"address"},{"internalType":"address","name":"openSeaProxyRegistryAddress_","type":"address"},{"internalType":"string","name":"baseMetadataURI_","type":"string"}],"stateMutability":"nonpayable","type":"constructor"},{"inputs":[],"name":"OverSupplyLimit","type":"error"},{"inputs":[],"name":"TokenBurned","type":"error"},{"inputs":[],"name":"TransferFromIncorrectOwner","type":"error"},{"inputs":[],"name":"TransferToContractForbidden","type":"error"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"owner","type":"address"},{"indexed":true,"internalType":"address","name":"approved","type":"address"},{"indexed":true,"internalType":"uint256","name":"tokenId","type":"uint256"}],"name":"Approval","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"owner","type":"address"},{"indexed":true,"internalType":"address","name":"operator","type":"address"},{"indexed":false,"internalType":"bool","name":"approved","type":"bool"}],"name":"ApprovalForAll","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"uint256","name":"fromTokenId","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"toTokenId","type":"uint256"},{"indexed":true,"internalType":"address","name":"from","type":"address"},{"indexed":true,"internalType":"address","name":"to","type":"address"}],"name":"ConsecutiveTransfer","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":"from","type":"address"},{"indexed":true,"internalType":"address","name":"to","type":"address"},{"indexed":true,"internalType":"uint256","name":"tokenId","type":"uint256"}],"name":"Transfer","type":"event"},{"inputs":[{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"tokenId","type":"uint256"}],"name":"approve","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"wallet","type":"address"}],"name":"balanceOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"baseMetadataURI","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"baseTokenURI","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"bubblehouseOperator","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"tokenId","type":"uint256"}],"name":"burn","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"burnBubblehouseOperator","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"burnMinter","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"contractURI","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint64","name":"supplyLimit_","type":"uint64"}],"name":"decreaseSupplyLimit","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"tokenId","type":"uint256"}],"name":"getApproved","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"tokenId","type":"uint256"}],"name":"internalRawTokenState","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"start","type":"uint256"},{"internalType":"uint256","name":"end","type":"uint256"}],"name":"internalRawTokenStates","outputs":[{"internalType":"uint256[]","name":"","type":"uint256[]"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"tokenId","type":"uint256"}],"name":"internalResolvedTokenState","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"start","type":"uint256"},{"internalType":"uint256","name":"end","type":"uint256"}],"name":"internalResolvedTokenStates","outputs":[{"internalType":"uint256[]","name":"","type":"uint256[]"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"wallet","type":"address"},{"internalType":"address","name":"operator","type":"address"}],"name":"isApprovedForAll","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"quantity","type":"uint256"}],"name":"mint","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"minter","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"name","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"tokenId","type":"uint256"}],"name":"ownerOf","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"string","name":"name_","type":"string"},{"internalType":"string","name":"symbol_","type":"string"}],"name":"rename","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"newOperator","type":"address"}],"name":"replaceBubblehouseOperator","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"newOwner","type":"address"}],"name":"replaceContractOwner","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"newMinter","type":"address"}],"name":"replaceMinter","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"from","type":"address"},{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"tokenId","type":"uint256"}],"name":"safeTransferFrom","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"from","type":"address"},{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"tokenId","type":"uint256"},{"internalType":"bytes","name":"","type":"bytes"}],"name":"safeTransferFrom","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"operator","type":"address"},{"internalType":"bool","name":"approved","type":"bool"}],"name":"setApprovalForAll","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"string","name":"newBaseURI","type":"string"}],"name":"setBaseMetadataURI","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"addr","type":"address"}],"name":"setOpenSeaProxyRegistryAddress","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"stride","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"supplyLimit","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"bytes4","name":"interfaceId","type":"bytes4"}],"name":"supportsInterface","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"symbol","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"tokenId","type":"uint256"}],"name":"tokenURI","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"wallet","type":"address"},{"internalType":"uint256","name":"start","type":"uint256"},{"internalType":"uint256","name":"end","type":"uint256"}],"name":"tokensOfOwnerIn","outputs":[{"internalType":"uint256[]","name":"","type":"uint256[]"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"totalMinted","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"totalSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"from","type":"address"},{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"tokenId","type":"uint256"}],"name":"transferFrom","outputs":[],"stateMutability":"nonpayable","type":"function"}]
Contract Creation Code
60806040526000600c553480156200001657600080fd5b50604051620022eb380380620022eb83398101604081905262000039916200042f565b8a516200004e9060009060208e01906200026e565b508951620000649060019060208d01906200026e565b506001600160401b03808a16600e558816600b556001600160a01b0385166200009f57600380546001600160a01b03191633179055620000bb565b600380546001600160a01b0319166001600160a01b0387161790555b600480546001600160a01b038087166001600160a01b03199283161790925560058054868416908316179055600680549285169290911691909117905580516200010d9060029060208401906200026e565b506001600160401b03871615620001335762000133866001600160401b03891662000144565b5050505050505050505050620005bb565b8060000362000151575050565b6001600160a01b0382166200016557600080fd5b6001600160a01b0382163b15620001a8576040517f0377a3d800000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b600c54600e5482820190811115620001ec576040517fadb211d900000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6001600160a01b038416600081815260086020908152604080832080548801905560018681018085526007845282852091891460e11b86179182905591518789018152919490939092909185917fdeaa91b6123d068f5821d0fb0678463d1a8a6079fe8af5de3ce5e896dcf9133d910160405180910390a45050600c55505050565b8280546200027c9062000566565b90600052602060002090601f016020900481019282620002a05760008555620002eb565b82601f10620002bb57805160ff1916838001178555620002eb565b82800160010185558215620002eb579182015b82811115620002eb578251825591602001919060010190620002ce565b50620002f9929150620002fd565b5090565b5b80821115620002f95760008155600101620002fe565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b600082601f8301126200035557600080fd5b81516001600160401b038082111562000372576200037262000314565b604051601f8301601f19908116603f011681019082821181831017156200039d576200039d62000314565b81604052838152602092508683858801011115620003ba57600080fd5b600091505b83821015620003de5785820183015181830184015290820190620003bf565b83821115620003f05760008385830101525b9695505050505050565b80516001600160401b03811681146200041257600080fd5b919050565b80516001600160a01b03811681146200041257600080fd5b60008060008060008060008060008060006101608c8e0312156200045257600080fd5b8b516001600160401b038111156200046957600080fd5b620004778e828f0162000343565b60208e0151909c5090506001600160401b038111156200049657600080fd5b620004a48e828f0162000343565b9a5050620004b560408d01620003fa565b9850620004c560608d01620003fa565b9750620004d560808d01620003fa565b9650620004e560a08d0162000417565b9550620004f560c08d0162000417565b94506200050560e08d0162000417565b9350620005166101008d0162000417565b9250620005276101208d0162000417565b6101408d01519092506001600160401b038111156200054557600080fd5b620005538e828f0162000343565b9150509295989b509295989b9093969950565b600181811c908216806200057b57607f821691505b602082108103620005b5577f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b50919050565b611d2080620005cb6000396000f3fe608060405234801561001057600080fd5b506004361061023d5760003560e01c80636352211e1161013b578063a22cb465116100b8578063cef302b91161007c578063cef302b9146104c1578063d547cfb7146103a5578063e8a3d485146104d4578063e985e9c5146104dc578063ecc580111461051857600080fd5b8063a22cb46514610460578063a2309ff814610473578063aea3d9a51461047b578063b88d4fde1461049b578063c87b56dd146104ae57600080fd5b80638da5cb5b116100ff5780638da5cb5b1461041957806395d89b411461042a57806399a2557a146104325780639ba47cf9146104455780639c7c722b1461044d57600080fd5b80636352211e146103ad57806370a08231146103c05780637e518ec8146103d35780637f9d2fd1146103e657806385b59a22146103f957600080fd5b806319d1997a116101c957806340c10f191161018d57806340c10f191461035957806342842e0e1461036c57806342966c681461037f5780634de71d09146103925780635b2bd79e146103a557600080fd5b806319d1997a146103105780631c9f2f7c14610318578063227f4b5f1461032b57806323b872dd14610333578063317153501461034657600080fd5b8063081812fc11610210578063081812fc146102b957806308abf026146102cc578063095ea7b3146102df5780630ade4f06146102f257806318160ddd1461030457600080fd5b806301ffc9a71461024257806306fdde031461026a578063075461721461027f57806307f1af44146102a4575b600080fd5b610255610250366004611672565b610529565b60405190151581526020015b60405180910390f35b61027261057b565b60405161026191906116cc565b6004546001600160a01b03165b6040516001600160a01b039091168152602001610261565b6102b76102b2366004611714565b61060d565b005b61028c6102c7366004611731565b61066e565b6102b76102da366004611714565b610695565b6102b76102ed36600461174a565b6106ce565b600b545b604051908152602001610261565b600d54600c54036102f6565b600e546102f6565b6102b7610326366004611714565b610774565b6102b76107d5565b6102b7610341366004611776565b6107fe565b6102b76103543660046117b7565b610977565b6102b761036736600461174a565b6109b5565b6102b761037a366004611776565b610acb565b6102b761038d366004611731565b610adb565b6102b76103a0366004611714565b610b75565b610272610c0d565b61028c6103bb366004611731565b610c1c565b6102f66103ce366004611714565b610c45565b6102b76103e136600461182a565b610c76565b6102f66103f4366004611731565b610c99565b61040c61040736600461186c565b610ca4565b604051610261919061188e565b6003546001600160a01b031661028c565b610272610d94565b61040c6104403660046118d2565b610dc6565b6102b7610f38565b6102b761045b366004611907565b610f61565b6102b761046e366004611973565b610f98565b600c546102f6565b6102f6610489366004611731565b60009081526007602052604090205490565b6102b76104a93660046119b1565b61101b565b6102726104bc366004611731565b611026565b61040c6104cf36600461186c565b61106d565b61027261114b565b6102556104ea366004611a24565b6001600160a01b03918216600090815260096020908152604080832093909416825291909152205460ff1690565b6005546001600160a01b031661028c565b60006001600160e01b031982166380ac58cd60e01b148061055a57506001600160e01b03198216635b5e139f60e01b145b8061057557506001600160e01b031982166301ffc9a760e01b145b92915050565b60606000805461058a90611a52565b80601f01602080910402602001604051908101604052809291908181526020018280546105b690611a52565b80156106035780601f106105d857610100808354040283529160200191610603565b820191906000526020600020905b8154815290600101906020018083116105e657829003601f168201915b5050505050905090565b6003546001600160a01b0316331461062457600080fd5b6004546001600160a01b031661063957600080fd5b6001600160a01b03811661064c57600080fd5b600480546001600160a01b0319166001600160a01b0392909216919091179055565b60006106798261117d565b506000908152600a60205260409020546001600160a01b031690565b6003546001600160a01b031633146106ac57600080fd5b600680546001600160a01b0319166001600160a01b0392909216919091179055565b6106d78161117d565b60006106e28261119a565b9050600160e01b8116156107095760405163202d8ed160e01b815260040160405180910390fd5b80336107168185846111cd565b6000848152600a602052604080822080546001600160a01b0319166001600160a01b0389811691821790925591518793918616917f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92591a45050505050565b6003546001600160a01b0316331461078b57600080fd5b6005546001600160a01b03166107a057600080fd5b6001600160a01b0381166107b357600080fd5b600580546001600160a01b0319166001600160a01b0392909216919091179055565b6003546001600160a01b031633146107ec57600080fd5b600480546001600160a01b0319169055565b6001600160a01b03821661081157600080fd5b6001600160a01b0382163b1561083957604051626ef47b60e31b815260040160405180910390fd5b6108428161117d565b600061084d8261119a565b9050600160e01b8116156108745760405163202d8ed160e01b815260040160405180910390fd5b806001600160a01b03858116908216146108a05760405162a1148160e81b815260040160405180910390fd5b6108ac335b84836111cd565b6108b68382611284565b6001600160a01b0380861660009081526008602090815260408083208054600019019055928716808352838320805460010190558683526007909152918120600160e11b9283179081905591841690036109405760018401600081815260076020526040812054900361093e57600c54811161093e5760008181526007602052604090208490555b505b5082846001600160a01b0316866001600160a01b0316600080516020611ccb83398151915260405160405180910390a45050505050565b6003546001600160a01b0316331461098e57600080fd5b600e548167ffffffffffffffff16106109a657600080fd5b67ffffffffffffffff16600e55565b6004546001600160a01b031633146109cc57600080fd5b806000036109d957600080fd5b6001600160a01b0382163b15610a0157604051626ef47b60e31b815260040160405180910390fd5b600c54600e5482820190811115610a2b5760405163adb211d960e01b815260040160405180910390fd5b6001600160a01b03841660008181526008602052604081208054860190556001808501929190861460e11b821790829003610a6557600080fd5b600083815260076020526040812082905583908390600080516020611ccb8339815191528180a460018401600184015b818114610abb5780846000600080516020611ccb833981519152600080a4600101610a95565b505050600c929092555050505050565b610ad68383836107fe565b505050565b610ae48161117d565b6000610aef8261119a565b9050600160e01b811615610b01575050565b80610b0b336108a5565b610b158382611284565b6001600160a01b038116600081815260086020908152604080832080546000190190558683526007909152808220600360e01b9590951794859055600d8054600101905551859290600080516020611ccb833981519152908390a4505050565b6003546001600160a01b03163314610b8c57600080fd5b6001600160a01b038116610b9f57600080fd5b6003546001600160a01b03908116908216819003610bbb575050565b600380546001600160a01b0319166001600160a01b0384811691821790925560405190918316907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a3505b50565b60606002805461058a90611a52565b6000610c278261117d565b6000610c328361119a565b9050600160e01b81161561057557600080fd5b60006001600160a01b038216610c5a57600080fd5b506001600160a01b031660009081526008602052604090205490565b6003546001600160a01b03163314610c8d57600080fd5b610ad6600283836115d9565b60006105758261119a565b606082600003610cb357600192505b600c54821115610cc357600c5491505b82821015610cff5760005b604051908082528060200260200182016040528015610cf7578160200160208202803683370190505b509050610575565b600083830360010167ffffffffffffffff811115610d1f57610d1f611a8c565b604051908082528060200260200182016040528015610d48578160200160208202803683370190505b509050835b838111610d8c5760008181526007602052604090205482518390878403908110610d7957610d79611aa2565b6020908102919091010152600101610d4d565b509392505050565b606060018054610da390611a52565b9050600003610db9576000805461058a90611a52565b6001805461058a90611a52565b606082600003610dd557600192505b600c54821115610de557600c5491505b6001600160a01b03841660009081526008602052604090205483831080610e0a575080155b15610e25575050604080516000815260208101909152610f31565b60018484030181811015610e37578091505b60008267ffffffffffffffff811115610e5257610e52611a8c565b604051908082528060200260200182016040528015610e7b578160200160208202803683370190505b5090506000806000610e8c8961119a565b9050600160e01b8116600003610ea0578091505b885b888111158015610eb25750868414155b15610f275760008181526007602052604090205491508115610ee057600160e01b8216600003610f1f578192505b8a6001600160a01b0316836001600160a01b031603610f1f5780858580600101965081518110610f1257610f12611aa2565b6020026020010181815250505b600101610ea2565b5050508152925050505b9392505050565b6003546001600160a01b03163314610f4f57600080fd5b600580546001600160a01b0319169055565b6003546001600160a01b03163314610f7857600080fd5b610f84600085856115d9565b50610f91600183836115d9565b5050505050565b336001600160a01b0383168103610fae57600080fd5b6001600160a01b03818116600081815260096020908152604080832094881680845294825291829020805460ff191687151590811790915591519182527f17307eab39ab6107e8899845ad3d59bd9653f200f220920489ca2b5937696c31910160405180910390a3505050565b610f918585856107fe565b60606110318261117d565b600261103c306112f7565b611045846113fa565b60405160200161105793929190611b51565b6040516020818303038152906040529050919050565b60608260000361107c57600192505b600c5482111561108c57600c5491505b8282101561109b576000610cce565b60006110a68461119a565b9050600084840360010167ffffffffffffffff8111156110c8576110c8611a8c565b6040519080825280602002602001820160405280156110f1578160200160208202803683370190505b509050845b848111611142576000818152600760205260408120549390849003611119578093505b83838884038151811061112e5761112e611aa2565b6020908102919091010152506001016110f6565b50949350505050565b60606002611158306112f7565b604051602001611169929190611ba8565b604051602081830303815290604052905090565b600181101561118b57600080fd5b600c54811115610c0a57600080fd5b60008181526007602052604081205482905b80600003610f315750600019016000818152600760205260409020546111ac565b806001600160a01b0316836001600160a01b0316036111eb57505050565b6005546001600160a01b0390811690841603611217576005546001600160a01b03161561121757505050565b6001600160a01b0380821660009081526009602090815260408083209387168352929052205460ff161561124a57505050565b6112548382611503565b1561125e57505050565b6000828152600a60205260409020546001600160a01b0380851691160361023d57505050565b6000828152600a60205260409020546001600160a01b0316156112f3576000828152600a602052604080822080546001600160a01b0319169055518391906001600160a01b038416907f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925908390a45b5050565b60408051602880825260608281019093526000919060208201818036833701905050905060005b60148110156113f35760008160130360080260020a856001600160a01b03168161134a5761134a611bec565b0460f81b9050600060108260f81c60ff168161136857611368611bec565b0460f81b9050611377816115a3565b84846002028151811061138c5761138c611aa2565b60200101906001600160f81b031916908160001a9053506113ba8160f81c6010028360f81c0360f81b6115a3565b8484600202600101815181106113d2576113d2611aa2565b60200101906001600160f81b031916908160001a905350505060010161131e565b5092915050565b6060816000036114215750506040805180820190915260018152600360fc1b602082015290565b8160005b811561144b578061143581611c18565b91506114449050600a83611c31565b9150611425565b60008167ffffffffffffffff81111561146657611466611a8c565b6040519080825280601f01601f191660200182016040528015611490576020820181803683370190505b5090505b84156114fb576114a5600183611c45565b91506114b2600a86611c5c565b6114bd906030611c70565b60f81b8183815181106114d2576114d2611aa2565b60200101906001600160f81b031916908160001a9053506114f4600a86611c31565b9450611494565b949350505050565b6006546000906001600160a01b031661151e57506000610575565b60065460405163c455279160e01b81526001600160a01b03848116600483015291821691851690829063c455279190602401602060405180830381865afa15801561156d573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906115919190611c88565b6001600160a01b031614949350505050565b6000600a60f883901c10156115ca576115c160f883901c6030611ca5565b60f81b92915050565b6115c160f883901c6057611ca5565b8280546115e590611a52565b90600052602060002090601f016020900481019282611607576000855561164d565b82601f106116205782800160ff1982351617855561164d565b8280016001018555821561164d579182015b8281111561164d578235825591602001919060010190611632565b5061165992915061165d565b5090565b5b80821115611659576000815560010161165e565b60006020828403121561168457600080fd5b81356001600160e01b031981168114610f3157600080fd5b60005b838110156116b757818101518382015260200161169f565b838111156116c6576000848401525b50505050565b60208152600082518060208401526116eb81604085016020870161169c565b601f01601f19169190910160400192915050565b6001600160a01b0381168114610c0a57600080fd5b60006020828403121561172657600080fd5b8135610f31816116ff565b60006020828403121561174357600080fd5b5035919050565b6000806040838503121561175d57600080fd5b8235611768816116ff565b946020939093013593505050565b60008060006060848603121561178b57600080fd5b8335611796816116ff565b925060208401356117a6816116ff565b929592945050506040919091013590565b6000602082840312156117c957600080fd5b813567ffffffffffffffff81168114610f3157600080fd5b60008083601f8401126117f357600080fd5b50813567ffffffffffffffff81111561180b57600080fd5b60208301915083602082850101111561182357600080fd5b9250929050565b6000806020838503121561183d57600080fd5b823567ffffffffffffffff81111561185457600080fd5b611860858286016117e1565b90969095509350505050565b6000806040838503121561187f57600080fd5b50508035926020909101359150565b6020808252825182820181905260009190848201906040850190845b818110156118c6578351835292840192918401916001016118aa565b50909695505050505050565b6000806000606084860312156118e757600080fd5b83356118f2816116ff565b95602085013595506040909401359392505050565b6000806000806040858703121561191d57600080fd5b843567ffffffffffffffff8082111561193557600080fd5b611941888389016117e1565b9096509450602087013591508082111561195a57600080fd5b50611967878288016117e1565b95989497509550505050565b6000806040838503121561198657600080fd5b8235611991816116ff565b9150602083013580151581146119a657600080fd5b809150509250929050565b6000806000806000608086880312156119c957600080fd5b85356119d4816116ff565b945060208601356119e4816116ff565b935060408601359250606086013567ffffffffffffffff811115611a0757600080fd5b611a13888289016117e1565b969995985093965092949392505050565b60008060408385031215611a3757600080fd5b8235611a42816116ff565b915060208301356119a6816116ff565b600181811c90821680611a6657607f821691505b602082108103611a8657634e487b7160e01b600052602260045260246000fd5b50919050565b634e487b7160e01b600052604160045260246000fd5b634e487b7160e01b600052603260045260246000fd5b8054600090600181811c9080831680611ad257607f831692505b60208084108203611af357634e487b7160e01b600052602260045260246000fd5b818015611b075760018114611b1857611b45565b60ff19861689528489019650611b45565b60008881526020902060005b86811015611b3d5781548b820152908501908301611b24565b505084890196505b50505050505092915050565b6000611b5d8286611ab8565b6205e60f60eb1b81528451611b7981600384016020890161169c565b602f60f81b600392909101918201528351611b9b81600484016020880161169c565b0160040195945050505050565b6000611bb48285611ab8565b6205e60f60eb1b81528351611bd081600384016020880161169c565b622f2d3160e81b60039290910191820152600601949350505050565b634e487b7160e01b600052601260045260246000fd5b634e487b7160e01b600052601160045260246000fd5b600060018201611c2a57611c2a611c02565b5060010190565b600082611c4057611c40611bec565b500490565b600082821015611c5757611c57611c02565b500390565b600082611c6b57611c6b611bec565b500690565b60008219821115611c8357611c83611c02565b500190565b600060208284031215611c9a57600080fd5b8151610f31816116ff565b600060ff821660ff84168060ff03821115611cc257611cc2611c02565b01939250505056feddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3efa2646970667358221220be3c2a2e77dc7df75479bdf4ece38ce46c1cfadf1d04a9873f884121f461c88164736f6c634300080e0033000000000000000000000000000000000000000000000000000000000000016000000000000000000000000000000000000000000000000000000000000001c0000000000000000000000000000000000000000000000000000000003b9aca00000000000000000000000000000000000000000000000000000000000000003200000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000075fa2f2ffc89ce78ac77629c909f0d60edc27ee800000000000000000000000075fa2f2ffc89ce78ac77629c909f0d60edc27ee8000000000000000000000000a5409ec958c83c3f309868babaca7c86dcb077c100000000000000000000000000000000000000000000000000000000000001e00000000000000000000000000000000000000000000000000000000000000023427562626c65776f726c642045786563757469766520466f756e64657273205061737300000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000002d68747470733a2f2f6170692e627562626c65686f7573652e636f6d2f6d657461646174612f657468657265756d00000000000000000000000000000000000000
Deployed Bytecode
0x608060405234801561001057600080fd5b506004361061023d5760003560e01c80636352211e1161013b578063a22cb465116100b8578063cef302b91161007c578063cef302b9146104c1578063d547cfb7146103a5578063e8a3d485146104d4578063e985e9c5146104dc578063ecc580111461051857600080fd5b8063a22cb46514610460578063a2309ff814610473578063aea3d9a51461047b578063b88d4fde1461049b578063c87b56dd146104ae57600080fd5b80638da5cb5b116100ff5780638da5cb5b1461041957806395d89b411461042a57806399a2557a146104325780639ba47cf9146104455780639c7c722b1461044d57600080fd5b80636352211e146103ad57806370a08231146103c05780637e518ec8146103d35780637f9d2fd1146103e657806385b59a22146103f957600080fd5b806319d1997a116101c957806340c10f191161018d57806340c10f191461035957806342842e0e1461036c57806342966c681461037f5780634de71d09146103925780635b2bd79e146103a557600080fd5b806319d1997a146103105780631c9f2f7c14610318578063227f4b5f1461032b57806323b872dd14610333578063317153501461034657600080fd5b8063081812fc11610210578063081812fc146102b957806308abf026146102cc578063095ea7b3146102df5780630ade4f06146102f257806318160ddd1461030457600080fd5b806301ffc9a71461024257806306fdde031461026a578063075461721461027f57806307f1af44146102a4575b600080fd5b610255610250366004611672565b610529565b60405190151581526020015b60405180910390f35b61027261057b565b60405161026191906116cc565b6004546001600160a01b03165b6040516001600160a01b039091168152602001610261565b6102b76102b2366004611714565b61060d565b005b61028c6102c7366004611731565b61066e565b6102b76102da366004611714565b610695565b6102b76102ed36600461174a565b6106ce565b600b545b604051908152602001610261565b600d54600c54036102f6565b600e546102f6565b6102b7610326366004611714565b610774565b6102b76107d5565b6102b7610341366004611776565b6107fe565b6102b76103543660046117b7565b610977565b6102b761036736600461174a565b6109b5565b6102b761037a366004611776565b610acb565b6102b761038d366004611731565b610adb565b6102b76103a0366004611714565b610b75565b610272610c0d565b61028c6103bb366004611731565b610c1c565b6102f66103ce366004611714565b610c45565b6102b76103e136600461182a565b610c76565b6102f66103f4366004611731565b610c99565b61040c61040736600461186c565b610ca4565b604051610261919061188e565b6003546001600160a01b031661028c565b610272610d94565b61040c6104403660046118d2565b610dc6565b6102b7610f38565b6102b761045b366004611907565b610f61565b6102b761046e366004611973565b610f98565b600c546102f6565b6102f6610489366004611731565b60009081526007602052604090205490565b6102b76104a93660046119b1565b61101b565b6102726104bc366004611731565b611026565b61040c6104cf36600461186c565b61106d565b61027261114b565b6102556104ea366004611a24565b6001600160a01b03918216600090815260096020908152604080832093909416825291909152205460ff1690565b6005546001600160a01b031661028c565b60006001600160e01b031982166380ac58cd60e01b148061055a57506001600160e01b03198216635b5e139f60e01b145b8061057557506001600160e01b031982166301ffc9a760e01b145b92915050565b60606000805461058a90611a52565b80601f01602080910402602001604051908101604052809291908181526020018280546105b690611a52565b80156106035780601f106105d857610100808354040283529160200191610603565b820191906000526020600020905b8154815290600101906020018083116105e657829003601f168201915b5050505050905090565b6003546001600160a01b0316331461062457600080fd5b6004546001600160a01b031661063957600080fd5b6001600160a01b03811661064c57600080fd5b600480546001600160a01b0319166001600160a01b0392909216919091179055565b60006106798261117d565b506000908152600a60205260409020546001600160a01b031690565b6003546001600160a01b031633146106ac57600080fd5b600680546001600160a01b0319166001600160a01b0392909216919091179055565b6106d78161117d565b60006106e28261119a565b9050600160e01b8116156107095760405163202d8ed160e01b815260040160405180910390fd5b80336107168185846111cd565b6000848152600a602052604080822080546001600160a01b0319166001600160a01b0389811691821790925591518793918616917f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92591a45050505050565b6003546001600160a01b0316331461078b57600080fd5b6005546001600160a01b03166107a057600080fd5b6001600160a01b0381166107b357600080fd5b600580546001600160a01b0319166001600160a01b0392909216919091179055565b6003546001600160a01b031633146107ec57600080fd5b600480546001600160a01b0319169055565b6001600160a01b03821661081157600080fd5b6001600160a01b0382163b1561083957604051626ef47b60e31b815260040160405180910390fd5b6108428161117d565b600061084d8261119a565b9050600160e01b8116156108745760405163202d8ed160e01b815260040160405180910390fd5b806001600160a01b03858116908216146108a05760405162a1148160e81b815260040160405180910390fd5b6108ac335b84836111cd565b6108b68382611284565b6001600160a01b0380861660009081526008602090815260408083208054600019019055928716808352838320805460010190558683526007909152918120600160e11b9283179081905591841690036109405760018401600081815260076020526040812054900361093e57600c54811161093e5760008181526007602052604090208490555b505b5082846001600160a01b0316866001600160a01b0316600080516020611ccb83398151915260405160405180910390a45050505050565b6003546001600160a01b0316331461098e57600080fd5b600e548167ffffffffffffffff16106109a657600080fd5b67ffffffffffffffff16600e55565b6004546001600160a01b031633146109cc57600080fd5b806000036109d957600080fd5b6001600160a01b0382163b15610a0157604051626ef47b60e31b815260040160405180910390fd5b600c54600e5482820190811115610a2b5760405163adb211d960e01b815260040160405180910390fd5b6001600160a01b03841660008181526008602052604081208054860190556001808501929190861460e11b821790829003610a6557600080fd5b600083815260076020526040812082905583908390600080516020611ccb8339815191528180a460018401600184015b818114610abb5780846000600080516020611ccb833981519152600080a4600101610a95565b505050600c929092555050505050565b610ad68383836107fe565b505050565b610ae48161117d565b6000610aef8261119a565b9050600160e01b811615610b01575050565b80610b0b336108a5565b610b158382611284565b6001600160a01b038116600081815260086020908152604080832080546000190190558683526007909152808220600360e01b9590951794859055600d8054600101905551859290600080516020611ccb833981519152908390a4505050565b6003546001600160a01b03163314610b8c57600080fd5b6001600160a01b038116610b9f57600080fd5b6003546001600160a01b03908116908216819003610bbb575050565b600380546001600160a01b0319166001600160a01b0384811691821790925560405190918316907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a3505b50565b60606002805461058a90611a52565b6000610c278261117d565b6000610c328361119a565b9050600160e01b81161561057557600080fd5b60006001600160a01b038216610c5a57600080fd5b506001600160a01b031660009081526008602052604090205490565b6003546001600160a01b03163314610c8d57600080fd5b610ad6600283836115d9565b60006105758261119a565b606082600003610cb357600192505b600c54821115610cc357600c5491505b82821015610cff5760005b604051908082528060200260200182016040528015610cf7578160200160208202803683370190505b509050610575565b600083830360010167ffffffffffffffff811115610d1f57610d1f611a8c565b604051908082528060200260200182016040528015610d48578160200160208202803683370190505b509050835b838111610d8c5760008181526007602052604090205482518390878403908110610d7957610d79611aa2565b6020908102919091010152600101610d4d565b509392505050565b606060018054610da390611a52565b9050600003610db9576000805461058a90611a52565b6001805461058a90611a52565b606082600003610dd557600192505b600c54821115610de557600c5491505b6001600160a01b03841660009081526008602052604090205483831080610e0a575080155b15610e25575050604080516000815260208101909152610f31565b60018484030181811015610e37578091505b60008267ffffffffffffffff811115610e5257610e52611a8c565b604051908082528060200260200182016040528015610e7b578160200160208202803683370190505b5090506000806000610e8c8961119a565b9050600160e01b8116600003610ea0578091505b885b888111158015610eb25750868414155b15610f275760008181526007602052604090205491508115610ee057600160e01b8216600003610f1f578192505b8a6001600160a01b0316836001600160a01b031603610f1f5780858580600101965081518110610f1257610f12611aa2565b6020026020010181815250505b600101610ea2565b5050508152925050505b9392505050565b6003546001600160a01b03163314610f4f57600080fd5b600580546001600160a01b0319169055565b6003546001600160a01b03163314610f7857600080fd5b610f84600085856115d9565b50610f91600183836115d9565b5050505050565b336001600160a01b0383168103610fae57600080fd5b6001600160a01b03818116600081815260096020908152604080832094881680845294825291829020805460ff191687151590811790915591519182527f17307eab39ab6107e8899845ad3d59bd9653f200f220920489ca2b5937696c31910160405180910390a3505050565b610f918585856107fe565b60606110318261117d565b600261103c306112f7565b611045846113fa565b60405160200161105793929190611b51565b6040516020818303038152906040529050919050565b60608260000361107c57600192505b600c5482111561108c57600c5491505b8282101561109b576000610cce565b60006110a68461119a565b9050600084840360010167ffffffffffffffff8111156110c8576110c8611a8c565b6040519080825280602002602001820160405280156110f1578160200160208202803683370190505b509050845b848111611142576000818152600760205260408120549390849003611119578093505b83838884038151811061112e5761112e611aa2565b6020908102919091010152506001016110f6565b50949350505050565b60606002611158306112f7565b604051602001611169929190611ba8565b604051602081830303815290604052905090565b600181101561118b57600080fd5b600c54811115610c0a57600080fd5b60008181526007602052604081205482905b80600003610f315750600019016000818152600760205260409020546111ac565b806001600160a01b0316836001600160a01b0316036111eb57505050565b6005546001600160a01b0390811690841603611217576005546001600160a01b03161561121757505050565b6001600160a01b0380821660009081526009602090815260408083209387168352929052205460ff161561124a57505050565b6112548382611503565b1561125e57505050565b6000828152600a60205260409020546001600160a01b0380851691160361023d57505050565b6000828152600a60205260409020546001600160a01b0316156112f3576000828152600a602052604080822080546001600160a01b0319169055518391906001600160a01b038416907f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925908390a45b5050565b60408051602880825260608281019093526000919060208201818036833701905050905060005b60148110156113f35760008160130360080260020a856001600160a01b03168161134a5761134a611bec565b0460f81b9050600060108260f81c60ff168161136857611368611bec565b0460f81b9050611377816115a3565b84846002028151811061138c5761138c611aa2565b60200101906001600160f81b031916908160001a9053506113ba8160f81c6010028360f81c0360f81b6115a3565b8484600202600101815181106113d2576113d2611aa2565b60200101906001600160f81b031916908160001a905350505060010161131e565b5092915050565b6060816000036114215750506040805180820190915260018152600360fc1b602082015290565b8160005b811561144b578061143581611c18565b91506114449050600a83611c31565b9150611425565b60008167ffffffffffffffff81111561146657611466611a8c565b6040519080825280601f01601f191660200182016040528015611490576020820181803683370190505b5090505b84156114fb576114a5600183611c45565b91506114b2600a86611c5c565b6114bd906030611c70565b60f81b8183815181106114d2576114d2611aa2565b60200101906001600160f81b031916908160001a9053506114f4600a86611c31565b9450611494565b949350505050565b6006546000906001600160a01b031661151e57506000610575565b60065460405163c455279160e01b81526001600160a01b03848116600483015291821691851690829063c455279190602401602060405180830381865afa15801561156d573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906115919190611c88565b6001600160a01b031614949350505050565b6000600a60f883901c10156115ca576115c160f883901c6030611ca5565b60f81b92915050565b6115c160f883901c6057611ca5565b8280546115e590611a52565b90600052602060002090601f016020900481019282611607576000855561164d565b82601f106116205782800160ff1982351617855561164d565b8280016001018555821561164d579182015b8281111561164d578235825591602001919060010190611632565b5061165992915061165d565b5090565b5b80821115611659576000815560010161165e565b60006020828403121561168457600080fd5b81356001600160e01b031981168114610f3157600080fd5b60005b838110156116b757818101518382015260200161169f565b838111156116c6576000848401525b50505050565b60208152600082518060208401526116eb81604085016020870161169c565b601f01601f19169190910160400192915050565b6001600160a01b0381168114610c0a57600080fd5b60006020828403121561172657600080fd5b8135610f31816116ff565b60006020828403121561174357600080fd5b5035919050565b6000806040838503121561175d57600080fd5b8235611768816116ff565b946020939093013593505050565b60008060006060848603121561178b57600080fd5b8335611796816116ff565b925060208401356117a6816116ff565b929592945050506040919091013590565b6000602082840312156117c957600080fd5b813567ffffffffffffffff81168114610f3157600080fd5b60008083601f8401126117f357600080fd5b50813567ffffffffffffffff81111561180b57600080fd5b60208301915083602082850101111561182357600080fd5b9250929050565b6000806020838503121561183d57600080fd5b823567ffffffffffffffff81111561185457600080fd5b611860858286016117e1565b90969095509350505050565b6000806040838503121561187f57600080fd5b50508035926020909101359150565b6020808252825182820181905260009190848201906040850190845b818110156118c6578351835292840192918401916001016118aa565b50909695505050505050565b6000806000606084860312156118e757600080fd5b83356118f2816116ff565b95602085013595506040909401359392505050565b6000806000806040858703121561191d57600080fd5b843567ffffffffffffffff8082111561193557600080fd5b611941888389016117e1565b9096509450602087013591508082111561195a57600080fd5b50611967878288016117e1565b95989497509550505050565b6000806040838503121561198657600080fd5b8235611991816116ff565b9150602083013580151581146119a657600080fd5b809150509250929050565b6000806000806000608086880312156119c957600080fd5b85356119d4816116ff565b945060208601356119e4816116ff565b935060408601359250606086013567ffffffffffffffff811115611a0757600080fd5b611a13888289016117e1565b969995985093965092949392505050565b60008060408385031215611a3757600080fd5b8235611a42816116ff565b915060208301356119a6816116ff565b600181811c90821680611a6657607f821691505b602082108103611a8657634e487b7160e01b600052602260045260246000fd5b50919050565b634e487b7160e01b600052604160045260246000fd5b634e487b7160e01b600052603260045260246000fd5b8054600090600181811c9080831680611ad257607f831692505b60208084108203611af357634e487b7160e01b600052602260045260246000fd5b818015611b075760018114611b1857611b45565b60ff19861689528489019650611b45565b60008881526020902060005b86811015611b3d5781548b820152908501908301611b24565b505084890196505b50505050505092915050565b6000611b5d8286611ab8565b6205e60f60eb1b81528451611b7981600384016020890161169c565b602f60f81b600392909101918201528351611b9b81600484016020880161169c565b0160040195945050505050565b6000611bb48285611ab8565b6205e60f60eb1b81528351611bd081600384016020880161169c565b622f2d3160e81b60039290910191820152600601949350505050565b634e487b7160e01b600052601260045260246000fd5b634e487b7160e01b600052601160045260246000fd5b600060018201611c2a57611c2a611c02565b5060010190565b600082611c4057611c40611bec565b500490565b600082821015611c5757611c57611c02565b500390565b600082611c6b57611c6b611bec565b500690565b60008219821115611c8357611c83611c02565b500190565b600060208284031215611c9a57600080fd5b8151610f31816116ff565b600060ff821660ff84168060ff03821115611cc257611cc2611c02565b01939250505056feddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3efa2646970667358221220be3c2a2e77dc7df75479bdf4ece38ce46c1cfadf1d04a9873f884121f461c88164736f6c634300080e0033
Constructor Arguments (ABI-Encoded and is the last bytes of the Contract Creation Code above)
000000000000000000000000000000000000000000000000000000000000016000000000000000000000000000000000000000000000000000000000000001c0000000000000000000000000000000000000000000000000000000003b9aca00000000000000000000000000000000000000000000000000000000000000003200000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000075fa2f2ffc89ce78ac77629c909f0d60edc27ee800000000000000000000000075fa2f2ffc89ce78ac77629c909f0d60edc27ee8000000000000000000000000a5409ec958c83c3f309868babaca7c86dcb077c100000000000000000000000000000000000000000000000000000000000001e00000000000000000000000000000000000000000000000000000000000000023427562626c65776f726c642045786563757469766520466f756e64657273205061737300000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000002d68747470733a2f2f6170692e627562626c65686f7573652e636f6d2f6d657461646174612f657468657265756d00000000000000000000000000000000000000
-----Decoded View---------------
Arg [0] : name_ (string): Bubbleworld Executive Founders Pass
Arg [1] : symbol_ (string):
Arg [2] : supplyLimit_ (uint64): 1000000000
Arg [3] : stride_ (uint64): 50
Arg [4] : premintQuantity_ (uint64): 0
Arg [5] : premintOwner_ (address): 0x0000000000000000000000000000000000000000
Arg [6] : owner_ (address): 0x0000000000000000000000000000000000000000
Arg [7] : minter_ (address): 0x75Fa2f2FfC89ce78aC77629c909F0D60eDC27Ee8
Arg [8] : bubblehouseOperator_ (address): 0x75Fa2f2FfC89ce78aC77629c909F0D60eDC27Ee8
Arg [9] : openSeaProxyRegistryAddress_ (address): 0xa5409ec958C83C3f309868babACA7c86DCB077c1
Arg [10] : baseMetadataURI_ (string): https://api.bubblehouse.com/metadata/ethereum
-----Encoded View---------------
18 Constructor Arguments found :
Arg [0] : 0000000000000000000000000000000000000000000000000000000000000160
Arg [1] : 00000000000000000000000000000000000000000000000000000000000001c0
Arg [2] : 000000000000000000000000000000000000000000000000000000003b9aca00
Arg [3] : 0000000000000000000000000000000000000000000000000000000000000032
Arg [4] : 0000000000000000000000000000000000000000000000000000000000000000
Arg [5] : 0000000000000000000000000000000000000000000000000000000000000000
Arg [6] : 0000000000000000000000000000000000000000000000000000000000000000
Arg [7] : 00000000000000000000000075fa2f2ffc89ce78ac77629c909f0d60edc27ee8
Arg [8] : 00000000000000000000000075fa2f2ffc89ce78ac77629c909f0d60edc27ee8
Arg [9] : 000000000000000000000000a5409ec958c83c3f309868babaca7c86dcb077c1
Arg [10] : 00000000000000000000000000000000000000000000000000000000000001e0
Arg [11] : 0000000000000000000000000000000000000000000000000000000000000023
Arg [12] : 427562626c65776f726c642045786563757469766520466f756e646572732050
Arg [13] : 6173730000000000000000000000000000000000000000000000000000000000
Arg [14] : 0000000000000000000000000000000000000000000000000000000000000000
Arg [15] : 000000000000000000000000000000000000000000000000000000000000002d
Arg [16] : 68747470733a2f2f6170692e627562626c65686f7573652e636f6d2f6d657461
Arg [17] : 646174612f657468657265756d00000000000000000000000000000000000000
Loading...
Loading
Loading...
Loading
[ Download: CSV Export ]
[ Download: CSV Export ]
A token is a representation of an on-chain or off-chain asset. The token page shows information such as price, total supply, holders, transfers and social links. Learn more about this page in our Knowledge Base.