{"version":3,"sources":["config/config.js","images/logo.png","images/home.png","images/inventory.png","images/market.png","images/contacts.png","GlobalState/UserReducer.js","GlobalState/MenuReducer.js","GlobalState/reducers.js","GlobalState/Store.js","UserService.js","components/Menu.jsx","assets/default-nft.gif","utils/uiUtils/minMint.js","components/NftCard.jsx","utils/actions/nftMarketSell.js","helpers/client.js","utils/generalUtils.js","utils/auth.js","utils/hiveLogic.js","utils/apis/warmup.js","pages/UnboxingMsg.jsx","utils/monitoring/triggerAlert.js","components/Ads.jsx","utils/inventory/utils.js","utils/hive/healthyHiveNodes.js","pages/Home.jsx","utils/actions/nftMarketIssue.js","utils/actions/nftMarketMultipleIssue.js","pages/Administrator.jsx","ProtectedRoute.jsx","AdminRoute.jsx","images/cs-logo.png","components/LandingPage/Events.js","pages/LandingPage.jsx","images/exit.png","utils/actions/nftMarketBuy.js","utils/actions/nftMarketCancel.js","components/ConfirmModal.jsx","pages/Marketplace.jsx","pages/About.jsx","App.js","reportWebVitals.js","index.js","config/inventory.js"],"names":["isMainnet","REACT_APP_ENV_MODE","amdinAccount","symbolList","symbolNft","symbolPack","chainID","console","log","JSON","stringify","MARKET_FEE","unboxerAccount","window","location","hostname","isLocal","initialState","username","error","loginType","isLogged","balance","isVerified","user","createSlice","name","reducers","setPlayerData","state","action","payload","setPlayerLogout","setPlayerBalance","actions","menu","activeTab","setActiveTab","rootReducer","combineReducers","Store","configureStore","reducer","devTools","storeAppDispatch","dispatch","UserService","appName","authName","undefined","serviceLoginName","session","userBalance","callbackServerUserData","this","callback","document","querySelector","click","isEmpty","User","instance","new","Menu","props","UserState","useSelector","store","disabledStyle","css","opacity","myStyle","btnId","borderBottom","animationIn","animationOut","animationInDuration","animationInDelay","animationOutDuration","isVisible","id","className","to","src","LogoIcon","alt","width","href","target","rel","onClick","open","style","marginLeft","HomeIcon","InventoryIcon","MarketIcon","ContactsIcon","uiVersion","HIVE_MARKETPLACE_VERSION","MIN_MINTS","NFT_INVENTORY","MYTHIC_PACK","STARTER_PACK","LEV_1_PACK_COMMON","LEV_1_PACK_EPIC","LEV_2_PACK_COMMON","LEV_2_PACK_RARE","FORCE_FIELD","MYTHIC_AMMO","LEGENDARY_AMMO","BASE_GUN","LASER_RIFLE","LASER_SHOTGUN","VANCE_TYRRELL","MASHA_TALASHOVA","ELEKTRA_L2_SKIN","JUSTICE_L2_SKIN","UTOPIA_L2_SKIN","FORCE_FIELD_L2","SAVAGE","TREMOR","VORTEX","IVAN_BARRICK","MINTA_HANI","MURAN","THETA","VENGA","LEXI_CAYNE","EVELYN_MOORE","KIARA_JANUARY","KIARA_FEBRUARY","KIARA_MARCH","KIARA_APRIL","KIARA_MAY","KIARA_JUNE","KIARA_JULY","KIARA_AUGUST","KARINA_JANUARY","KARINA_FEBRUARY","KARINA_MARCH","KARINA_APRIL","KARINA_MAY","KARINA_JUNE","KARINA_JULY","KARINA_AUGUST","MARTE_APRIL","MARTE_MAY","MARTE_JUNE","MARTE_JULY","MARTE_AUGUST","MARTE_JANUARY","MARTE_FEBRUARY","MARTE_MARCH","KIARA_SEPTEMBER","KIARA_OCTOBER","KIARA_NOVEMBER","KIARA_DECEMBER","KARINA_SEPTEMBER","KARINA_OCTOBER","KARINA_NOVEMBER","KARINA_DECEMBER","MARTE_SEPTEMBER","MARTE_OCTOBER","MARTE_NOVEMBER","MARTE_DECEMBER","PVP_ALPHA_PASS","FORCE_FIELD_L0","TORCH","NftCard","nft","actionType","ownNFT","handleCheck","checked","handleTransfer","isPack","handleUnboxing","hideButtons","useState","price","setPrice","priceSymbol","setpriceSymbol","setError","useEffect","properties","img","schema","fixDescription","underscoredName","replace","mint","nftId","_id","mintNumber","minMint","fixMintNumber","classNames","defaultNftImg","type","onChange","e","Object","keys","map","prop","capitalize","fontSize","account","float","placeholder","value","sym","index","parseFloat","marginTop","paddingRight","FIXED_DESCRIPTIONS","description","nftName","toUpperCase","onHandleNFTsellAction","keychain","currentNftSymbol","data","toString","requestCustomJson","response","success","result","toast","onHandleNFTBulkSellAction","nfts","String","onHandleNFTTransferAction","toUser","cback","isOk","debug","UI_VERSION","versionObj","version","originalVersion","defineProperty","writable","_","API_URL","client","endpoint","method","body","contentType","customConfig","options","url","headers","get","axios","post","postForm","put","delete","nap","ms","Promise","resolve","setTimeout","onSignatureSuccess","message","errMsg","err","signed_message","resHiveUserVerify","alert","status","headerValue","token","defaults","common","authenticateWithBE","Date","now","hive_keychain","requestSignBuffer","sendTxAndBlockToBE","tx","block","timeout","testCallResp","trxId","blockNum","claimPackResp","hiveNodes","pickHiveNode","randId","Math","floor","random","length","pickedNode","hive","api","setOptions","setRandNode","stream","pickedHiveNode","scanTimeoutTs","validateUsername","utils","validateAccountName","getAccounts","dhive","require","startTime","nftTransferDone","streamingStarted","cleanupAfterScan","pause","clearTimeout","transferNftAndListenChain","skipNotify","listenForNFtTransferOnChain","lostBlocks","useNewNode","Client","resume","blockchain","getBlockStream","on","transactions","foundInfo","findNftTransfer","heHasNoErrors","heErrArr","seconds","arg","sender","blockData","txIndex","currentBlockNum","block_num","foundOp","find","required_auths","parsedJson","parse","json","isCsPackTransfer","filter","el","contractName","contractAction","contractPayload","symbol","ids","fetch","Accept","referrer","then","res","logs","errorsArr","errors","sendTxToBackend","errClaimContents","errClaimContentsRetry","UnboxingMsg","msg","setLoading","errTransfer","padding","color","Array","isArray","join","cursor","toFixed","firstTry","triggerAlert","content","catch","retryInLoop","split","reverse","AnonAdCorner","title","extractCategories","hiveNfts","categories","forEach","push","from","Set","ss","slice","parseSchemaName","category","part1","part2","BEACON_URL_HE","FALLBACK_NODE","REQUIRED_FEATURES","withPath","findHealthyNode","ok","statusText","validNodes","node","fail","features","every","feature","includes","nodesToCheck","warn","override","Home","fetchUrl","currency","setState","nftList","setNftList","loading","selectedNft","setSelectedNft","selTransferId","setSelTransferId","searchNftName","setNftSearch","searchUserName","setUserSearch","searchedAccount","setSearchedAccount","show","setShow","bulkShow","setBulkShow","validated","setValidated","validatedTran","setValidatedTran","offset","setOffset","handleClose","handleBulkTransfterClose","handleBulkTransfterShow","setCurrentNftSymbol","toggleSingleAndPacks","fetchNftList","givenUsername","jsonrpc","params","contract","table","query","limit","indexes","finally","searchUserNfts","resetUserNfts","handleChange","handleTransferSubmit","event","form","currentTarget","preventDefault","checkValidity","stopPropagation","selNFTs","transfterToUser","hidePacman","errBackend","handleSubmit","isPacksView","isSingNftsView","handleSearchSubmit","marginBottom","fontWeight","disabled","onSubmit","display","textAlign","Button","variant","Modal","onHide","Header","closeButton","Title","Form","noValidate","Body","Group","controlId","Label","Control","min","required","Feedback","Select","Footer","size","margin","searches","selected","sel","otherState","AllYourFilteredNFTsInventory","collapsed","setCollapsed","foundCategories","filteredList","toLowerCase","PageElements","categoryItems","sort","aa","bb","findIndex","CategorizedItems","paddingLeft","cat","handleCollapse","onHandleNFTMarketIssueAction","nftInfo","toAccount","onHandleNFTMarketMultipleIssueAction","instances","countIssue","count","lastCountIssue","j","instances10","i","issue10Nft","instances_t","issueNft_t","Administrator","collectionName","setCollection","issuedCounter","setIssuedCounter","handleIssue","handleSetProperties","nameOg","nameFallback","collection","max","height","ProtectedRoute","Component","component","rest","render","pathname","AdminRoute","pastEvents","nextEvents","Events","LandingPage","history","useHistory","userNameInputRef","useRef","localStorage","getItem","userName","setUserName","isLoading","setIsLoading","fullyMounted","isFullyMounted","usernameLetters","current","focus","login_keychain_submit","warning","currentState","CsLogo","requestHandshake","ref","autoComplete","setItem","class","logout","overflow","backgroundColor","onHandleNFTBuyAction","onHandleNFTBulkBuyAction","onHandleNFTCancelAction","onHandleBulkNFTCancelAction","ConfirmModal","handleHide","handleConfirm","hiveClient","Marketplace","searchOwner","setSearchOwner","setSearchNftName","selectedOwnNft","setSelectedOwnNft","confirmShow","setConfirmShow","setType","marketNFT","resAll","allNftList","mNft","_nft","Number","database","textDecoration","marginRight","Tabs","defaultActiveKey","Tab","eventKey","handleOwnCheck","AllFilteredNFTsMarket","YourFilteredNFtsMarket","About","configure","autoClose","PATHS","App","exact","path","reportWebVitals","onPerfEntry","Function","getCLS","getFID","getFCP","getLCP","getTTFB","init","ReactDOM","StrictMode","getElementById","exports"],"mappings":"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","file":"static/js/main.9821f74a.chunk.js","sourcesContent":["const { REACT_APP_ENV_MODE } = process.env;\r\n\r\nconst isMainnet = REACT_APP_ENV_MODE === 'production';\r\n\r\nexport const amdinAccount = isMainnet ? \"crypto-shots\" : \"csjay\";\r\nexport const symbolList = ['SWAP.HIVE', 'BEE', 'DOOM'];\r\n\r\nexport const symbolNft = isMainnet ? \"CSHOTS\" : \"BASEGUN\";\r\nexport const symbolPack = isMainnet ? \"CSPACKS\" : \"CSPACKT\";\r\n\r\nexport const chainID = isMainnet ? \"ssc-mainnet-hive\" : \"ssc-testnet-hive\";\r\n\r\nconsole.log(`\r\n Launching Hive UI with configs:\r\n ${JSON.stringify({ isMainnet, amdinAccount, symbolList, symbolNft, chainID }, null, 2)}\r\n`);\r\n\r\nexport const MARKET_FEE = 500; // 600 is 6%\r\n\r\n\r\n// # UNBOXING\r\n\r\n// TEMP @@\r\nexport const unboxerAccount = window.location.hostname === 'localhost' ? 'crypto-shots' : 'cryptoshotsdoom';\r\n\r\n// TODO: use afer alpha!\r\nexport const isLocal = window.location.hostname !== 'hive.crypto-shots.com';\r\n","export default __webpack_public_path__ + \"static/media/logo.8c3fcc36.png\";","export default __webpack_public_path__ + \"static/media/home.74a24df6.png\";","export default __webpack_public_path__ + \"static/media/inventory.e9051bf8.png\";","export default __webpack_public_path__ + \"static/media/market.39598226.png\";","export default __webpack_public_path__ + \"static/media/contacts.a0ebe723.png\";","import { createSlice } from '@reduxjs/toolkit';\r\n\r\nconst initialState = {\r\n username: '',\r\n error: '',\r\n loginType: '',\r\n isLogged: false,\r\n balance: 0,\r\n isVerified: false\r\n};\r\n\r\nconst user = createSlice({\r\n name: 'user',\r\n initialState,\r\n reducers: {\r\n setPlayerData: (state, action) => (action.payload),\r\n setPlayerLogout: (state, action) => initialState,\r\n setPlayerBalance: (state, action) => ({ ...state, balance: action.payload })\r\n }\r\n});\r\n\r\nexport const { setPlayerData, setPlayerLogout, setPlayerBalance } = user.actions;\r\nexport default user.reducer;","import { createSlice } from '@reduxjs/toolkit';\r\n\r\nconst initialState = {\r\n activeTab: 0,\r\n};\r\n\r\nconst menu = createSlice({\r\n name: 'menu',\r\n initialState,\r\n reducers: {\r\n setActiveTab: (state, action) => ({ ...state, activeTab: action.payload.activeTab })\r\n }\r\n});\r\n\r\nexport const { setActiveTab } = menu.actions;\r\nexport default menu.reducer;\r\n","import { combineReducers } from 'redux';\r\n\r\nimport user from './UserReducer';\r\nimport menu from './MenuReducer';\r\n\r\nexport const rootReducer = combineReducers({\r\n user,\r\n menu,\r\n});\r\n","import { configureStore } from '@reduxjs/toolkit';\r\nimport { rootReducer as reducer } from './reducers';\r\n\r\nconst Store = configureStore({\r\n reducer,\r\n devTools: true\r\n});\r\n\r\nexport const storeAppDispatch = Store.dispatch;\r\nexport default Store;\r\n","import { isEmpty } from 'lodash';\r\n\r\nimport { storeAppDispatch } from './GlobalState/Store';\r\nimport { setPlayerLogout } from './GlobalState/UserReducer';\r\n\r\n\r\n/**\r\n * Class to manage user data; it will be saved on Login and deleted on Logout\r\n */\r\nexport class User {\r\n\r\n appName = 'hive_poc';\r\n\r\n // User session data\r\n authName = undefined;\r\n serviceLoginName = undefined;\r\n // Shows petition signing and current balance obtaining methods\r\n session = undefined;\r\n\r\n // Current balance\r\n userBalance = 0;\r\n\r\n // Callback to refer to successful login\r\n callbackServerUserData = undefined;\r\n\r\n getName() {\r\n return this.authName;\r\n }\r\n\r\n login(callback) {\r\n const ualButton = document.querySelector(\".ual-button-gen\");\r\n ualButton.click();\r\n\r\n this.callbackServerUserData = callback;\r\n }\r\n\r\n isLogged() {\r\n // console.log(\"is logged: \", this.session);\r\n const auth = !isEmpty(this.authName) && !isEmpty(this.session);\r\n return auth;\r\n }\r\n\r\n logout() {\r\n console.log(\"Logout\");\r\n this.authName = undefined;\r\n this.session = undefined;\r\n\r\n storeAppDispatch(setPlayerLogout());\r\n\r\n if (this.callbackServerUserData !== undefined) {\r\n this.callbackServerUserData();\r\n }\r\n }\r\n\r\n // UserService init called \r\n init() {\r\n\r\n }\r\n\r\n static new() {\r\n if (!User.instance) {\r\n User.instance = new User();\r\n }\r\n\r\n return User.instance;\r\n }\r\n}\r\n\r\nexport const UserService = User.new();","import React from 'react';\r\nimport { css } from 'glamor';\r\nimport { useSelector } from 'react-redux';\r\nimport { Link, Redirect } from 'react-router-dom';\r\nimport LogoIcon from '../images/logo.png';\r\nimport HomeIcon from '../images/home.png';\r\nimport InventoryIcon from '../images/inventory.png';\r\nimport MarketIcon from '../images/market.png';\r\nimport ContactsIcon from '../images/contacts.png';\r\nimport { UserService } from '../UserService';\r\nimport { amdinAccount } from '../config/config';\r\nimport { Animated } from 'react-animated-css';\r\nimport { setActiveTab } from '../GlobalState/MenuReducer';\r\nimport { storeAppDispatch } from '../GlobalState/Store';\r\nimport uiVersion from '../config/version.json';\r\nimport './Menu.scss';\r\n\r\n\r\nexport const Menu = (props) => {\r\n const UserState = useSelector((store) => store.user);\r\n const MenuState = useSelector((store) => store.menu);\r\n const activeTab = MenuState.activeTab;\r\n\r\n const disabledStyle = css({\r\n opacity: 0.5\r\n });\r\n\r\n const myStyle = (btnId) => {\r\n if (btnId === activeTab) return ({ borderBottom: '6px solid red' });\r\n return ({});\r\n };\r\n\r\n const display_login_keychain = () => {\r\n if (window.hive_keychain) {\r\n let keychain = window.hive_keychain\r\n keychain.requestHandshake(() => {\r\n // setState({ loginType: \"keychain\" });\r\n });\r\n } else {\r\n // setState({ error: \"You do not have hive keychain installed\" });\r\n }\r\n };\r\n\r\n return (\r\n <>\r\n \r\n \r\n \r\n \r\n );\r\n}\r\n","export default __webpack_public_path__ + \"static/media/default-nft.2df7aae4.gif\";","import { NFT_INVENTORY } from \"../../config/inventory\";\r\n\r\n\r\n// NOTE: the MIN MINT is actually +1 from the below min mint number! <<<\r\nconst MIN_MINTS = {\r\n // ## NFT Packs\r\n // 1st level\r\n [NFT_INVENTORY.MYTHIC_PACK.name]: 0, // amount: 80\r\n [NFT_INVENTORY.STARTER_PACK.name]: 80, // 300\r\n // 2nd level\r\n [NFT_INVENTORY.LEV_1_PACK_COMMON.name]: 380, // 150\r\n [NFT_INVENTORY.LEV_1_PACK_EPIC.name]: 530, // 50\r\n // 3rd level\r\n [NFT_INVENTORY.LEV_2_PACK_COMMON.name]: 580, // 150\r\n [NFT_INVENTORY.LEV_2_PACK_RARE.name]: 730, // 50\r\n \r\n // ---------------------------------------------\r\n\r\n // ## NFT Items\r\n [NFT_INVENTORY.FORCE_FIELD.name]: 0, // amount: 501\r\n [NFT_INVENTORY.MYTHIC_AMMO.name]: 501, // +80 =\r\n [NFT_INVENTORY.LEGENDARY_AMMO.name]: 581, // 300 +20\r\n [NFT_INVENTORY.BASE_GUN.name]: 901, // 540\r\n [NFT_INVENTORY.LASER_RIFLE.name]: 1441, // 380\r\n [NFT_INVENTORY.LASER_SHOTGUN.name]: 1821, // 380\r\n [NFT_INVENTORY.VANCE_TYRRELL.name]: 2201, // 460\r\n [NFT_INVENTORY.MASHA_TALASHOVA.name]: 2661, // 380\r\n // NOTE: 3042-3076 taken by broken NFTs\r\n 'BROKEN': 3041, // 34\r\n \r\n // HALLOWEEN SKINS (PVP):\r\n [NFT_INVENTORY.ELEKTRA_L2_SKIN.name]: 3076, // 15 (Muran - common)\r\n [NFT_INVENTORY.JUSTICE_L2_SKIN.name]: 3091, // 10 (Venga - epic)\r\n [NFT_INVENTORY.UTOPIA_L2_SKIN.name]: 3101, // 5 (Theta - rare)\r\n\r\n // 3rd lev shield\r\n [NFT_INVENTORY.FORCE_FIELD_L2.name]: 3106, // 150\r\n \r\n // 2nd level items\r\n [NFT_INVENTORY.SAVAGE.name]: 3256, // 300\r\n [NFT_INVENTORY.TREMOR.name]: 3556, // 250\r\n [NFT_INVENTORY.VORTEX.name]: 3806, // 200\r\n [NFT_INVENTORY.IVAN_BARRICK.name]: 4006, // 400\r\n [NFT_INVENTORY.MINTA_HANI.name]: 4406, // 50\r\n\r\n // 3rd level items\r\n [NFT_INVENTORY.MURAN.name]: 4456, // 300\r\n [NFT_INVENTORY.THETA.name]: 4756, // 250\r\n [NFT_INVENTORY.VENGA.name]: 5006, // 200\r\n [NFT_INVENTORY.LEXI_CAYNE.name]: 5206, // 250\r\n [NFT_INVENTORY.EVELYN_MOORE.name]: 5456, // 200\r\n\r\n // CYBERGIRLS\r\n [NFT_INVENTORY.KIARA_JANUARY.name]: 5656, // 20\r\n [NFT_INVENTORY.KIARA_FEBRUARY.name]: 5676, // 20\r\n [NFT_INVENTORY.KIARA_MARCH.name]: 5696, // 20\r\n [NFT_INVENTORY.KIARA_APRIL.name]: 5716, // 20\r\n [NFT_INVENTORY.KIARA_MAY.name]: 5736, // 20\r\n [NFT_INVENTORY.KIARA_JUNE.name]: 5756, // 20\r\n [NFT_INVENTORY.KIARA_JULY.name]: 5776, // 20\r\n [NFT_INVENTORY.KIARA_AUGUST.name]: 5796, // 20\r\n [NFT_INVENTORY.KARINA_JANUARY.name]: 5816, // 20\r\n [NFT_INVENTORY.KARINA_FEBRUARY.name]: 5836, // 20\r\n [NFT_INVENTORY.KARINA_MARCH.name]: 5856, // 20\r\n [NFT_INVENTORY.KARINA_APRIL.name]: 5876, // 20\r\n [NFT_INVENTORY.KARINA_MAY.name]: 5896, // 20\r\n [NFT_INVENTORY.KARINA_JUNE.name]: 5916, // 20\r\n [NFT_INVENTORY.KARINA_JULY.name]: 5936, // 20\r\n [NFT_INVENTORY.KARINA_AUGUST.name]: 5956, // 20\r\n // Incorrect images:\r\n // [NFT_INVENTORY.MARTE_JANUARY.name]: 5976, // 20\r\n // [NFT_INVENTORY.MARTE_FEBRUARY.name]: 5996, // 20\r\n // [NFT_INVENTORY.MARTE_MARCH.name]: 6016, // 20\r\n [NFT_INVENTORY.MARTE_APRIL.name]: 6036, // 20\r\n [NFT_INVENTORY.MARTE_MAY.name]: 6056, // 20\r\n [NFT_INVENTORY.MARTE_JUNE.name]: 6076, // 20\r\n [NFT_INVENTORY.MARTE_JULY.name]: 6096, // 20\r\n [NFT_INVENTORY.MARTE_AUGUST.name]: 6116, // 20\r\n // Fixes for broken 3 above:\r\n [NFT_INVENTORY.MARTE_JANUARY.name]: 6136, // 20\r\n [NFT_INVENTORY.MARTE_FEBRUARY.name]: 6156, // 20\r\n [NFT_INVENTORY.MARTE_MARCH.name]: 6176, // 20\r\n // PS. new cybergirls 2023\r\n [NFT_INVENTORY.KIARA_SEPTEMBER.name]: 6396, // 20\r\n [NFT_INVENTORY.KIARA_OCTOBER.name]: 6416, // 20\r\n [NFT_INVENTORY.KIARA_NOVEMBER.name]: 6436, // 20\r\n [NFT_INVENTORY.KIARA_DECEMBER.name]: 6456, // 20\r\n [NFT_INVENTORY.KARINA_SEPTEMBER.name]: 6476, // 20\r\n [NFT_INVENTORY.KARINA_OCTOBER.name]: 6496, // 20\r\n [NFT_INVENTORY.KARINA_NOVEMBER.name]: 6516, // 20\r\n [NFT_INVENTORY.KARINA_DECEMBER.name]: 6536, // 20\r\n [NFT_INVENTORY.MARTE_SEPTEMBER.name]: 6556, // 20\r\n [NFT_INVENTORY.MARTE_OCTOBER.name]: 6576, // 20\r\n [NFT_INVENTORY.MARTE_NOVEMBER.name]: 6596, // 20\r\n [NFT_INVENTORY.MARTE_DECEMBER.name]: 6616, // 20\r\n\r\n [NFT_INVENTORY.PVP_ALPHA_PASS.name]: 6196, // 50++ --> 6396\r\n // nOTE: the new cybergirls have mint bigger than passes!\r\n\r\n [NFT_INVENTORY.FORCE_FIELD_L0.name]: 6636, // 500\r\n [NFT_INVENTORY.TORCH.name]: 7136, // 160\r\n\r\n};\r\n\r\n\r\nexport const fixMintNumber = ({ name, mint }) => {\r\n const minMint = MIN_MINTS[name];\r\n if (minMint === undefined) console.error('The mint number was not adjusted for', name, mint);\r\n if (minMint) return mint - minMint;\r\n return mint;\r\n};\r\n","import React, { useEffect, useState } from 'react'\r\n\r\nimport classNames from 'classnames';\r\nimport { symbolList } from '../config/config';\r\nimport defaultNftImg from \"../assets/default-nft.gif\";\r\nimport { fixMintNumber } from '../utils/uiUtils/minMint';\r\n\r\nimport '../scss/components/nftcard.scss';\r\nimport { capitalize } from 'lodash';\r\n\r\n\r\nexport default function NftCard({\r\n nft,\r\n action,\r\n actionType,\r\n className,\r\n ownNFT,\r\n handleCheck,\r\n checked,\r\n handleTransfer,\r\n isPack,\r\n handleUnboxing,\r\n hideButtons,\r\n}) {\r\n const [price, setPrice] = useState(\"\");\r\n const [priceSymbol, setpriceSymbol] = useState(\"SWAP.HIVE\");\r\n const [error, setError] = useState(\"\");\r\n\r\n const handleClick = () => {\r\n if (!price) {\r\n return setError(\"Please input price.\");\r\n }\r\n setError(\"\");\r\n action(price, priceSymbol);\r\n }\r\n\r\n const handleChange = (e) => {\r\n setPrice(e.target.value);\r\n if (!e.target.value) {\r\n setError('Please input price.');\r\n } else {\r\n setError(\"\");\r\n }\r\n }\r\n\r\n useEffect(() => {\r\n if (nft.price) {\r\n setPrice(nft.price);\r\n }\r\n if (nft.priceSymbol) {\r\n setpriceSymbol(nft.priceSymbol);\r\n }\r\n }, [nft])\r\n\r\n const { name = '', img = '', schema = '' } = nft.properties || {};\r\n fixDescription(nft);\r\n const underscoredName = name.replace(/ /g, '_');\r\n const mint = actionType === \"Buy\" ? nft.nftId : nft._id;\r\n const mintNumber = fixMintNumber({ name, mint });\r\n\r\n return (\r\n
\r\n
\r\n {/* */}\r\n handleCheck ? handleCheck(actionType === \"Buy\" ? nft.nftId : nft._id, !checked) : null}\r\n />\r\n {/* */}\r\n
\r\n
\r\n handleCheck ? handleCheck(actionType === \"Buy\" ? nft.nftId : nft._id, e.target.checked) : null} />\r\n
\r\n
\r\n
\r\n {nft.properties && Object.keys(nft.properties)\r\n .map((prop) => prop !== \"img\" &&

\r\n {capitalize(prop)}:   {nft.properties[prop]}\r\n

)\r\n }\r\n
\r\n
\r\n

\r\n {actionType !== \"Sell\" && <>\r\n SELLER:  \r\n \r\n {nft.account}\r\n \r\n \r\n }\r\n

\r\n
\r\n MINT:
\r\n {mintNumber}({mint})\r\n
\r\n
\r\n\r\n {!hideButtons &&
\r\n {actionType === \"Sell\"\r\n ?
\r\n
\r\n \r\n
\r\n
\r\n \r\n
\r\n
\r\n :
{parseFloat(nft.price)} {nft.priceSymbol}
\r\n }\r\n\r\n
\r\n \r\n {ownNFT ? \"Cancel\" : actionType }\r\n \r\n {(!ownNFT && actionType === \"Sell\") && }\r\n {isPack && }\r\n
\r\n\r\n
}\r\n {error && {error}}\r\n
\r\n
\r\n )\r\n};\r\n\r\n\r\nconst FIXED_DESCRIPTIONS = {\r\n 'FORCE FIELD, LEVEL-1': 'Shield against the 2nd level boss',\r\n};\r\n\r\nconst fixDescription = (nft = {}) => {\r\n if (!nft.properties.description) {\r\n const nftName = nft.properties.name?.toUpperCase();\r\n nft.properties.description = FIXED_DESCRIPTIONS[nftName] || 'n/a';\r\n }\r\n};\r\n","import { toast } from \"react-toastify\";\r\nimport { chainID, MARKET_FEE } from \"../../config/config\";\r\n\r\nexport const onHandleNFTsellAction = async(keychain, nft, price, priceSymbol, currentNftSymbol) => {\r\n console.log('[debug] onHandleNFTsellAction: ', nft, price, priceSymbol);\r\n\r\n let data = {\r\n \"contractName\": \"nftmarket\",\r\n \"contractAction\": \"sell\",\r\n \"contractPayload\": {\r\n \"symbol\": currentNftSymbol,\r\n \"nfts\": [\r\n nft._id.toString()\r\n ],\r\n \"price\": price.toString(),\r\n \"priceSymbol\": priceSymbol,\r\n \"fee\": MARKET_FEE\r\n },\r\n \"memo\": \"This is an optional extra field\"\r\n };\r\n\r\n keychain.requestCustomJson(nft.account, chainID, \"Active\", JSON.stringify(data), \"Sell NFT\", function(response) {\r\n if (response.success && response.result) {\r\n //show modal\r\n toast.success('NFT sale broacasted!')\r\n } else {\r\n //show modal\r\n toast.error('Oops, the NFT sale failed!')\r\n }\r\n });\r\n}\r\n\r\nexport const onHandleNFTBulkSellAction = async(keychain, account, nfts, price, priceSymbol, currentNftSymbol) => {\r\n console.log('[debug] onHandleNFTBulkSellAction', nfts, price, priceSymbol);\r\n\r\n let data = {\r\n \"contractName\": \"nftmarket\",\r\n \"contractAction\": \"sell\",\r\n \"contractPayload\": {\r\n \"symbol\": currentNftSymbol,\r\n \"nfts\": nfts.map(String), // convert to array of string\r\n \"price\": price.toString(),\r\n \"priceSymbol\": priceSymbol,\r\n \"fee\": MARKET_FEE\r\n },\r\n \"memo\": \"This is an optional extra field\"\r\n };\r\n\r\n keychain.requestCustomJson(account, chainID, \"Active\", JSON.stringify(data), \"Sell NFT\", function(response) {\r\n if (response.success && response.result) {\r\n //show modal\r\n toast.success('NFT sell success!')\r\n } else {\r\n //show modal\r\n toast.error('Oops, the NFT sale failed!')\r\n }\r\n });\r\n};\r\n\r\nexport const onHandleNFTTransferAction = async(keychain, account, nfts, toUser, currentNftSymbol, cback = () => {}) => {\r\n console.log('[debug] onHandleNFTTransferAction', nfts, toUser);\r\n\r\n let data = {\r\n \"contractName\": \"nft\",\r\n \"contractAction\": \"transfer\",\r\n \"contractPayload\": {\r\n \"to\": toUser,\r\n \"nfts\": [{\r\n \"symbol\": currentNftSymbol,\r\n \"ids\": nfts.map(String)\r\n }], // convert to array of string\r\n }\r\n };\r\n\r\n keychain.requestCustomJson(account, chainID, \"Active\", JSON.stringify(data), \"Transfer NFT\", function(response) {\r\n let isOk = true;\r\n if (response.success && response.result) {\r\n console.debug('NFT Transfer result:', response.result);\r\n //show modal\r\n toast.success('NFT Transfer broadcasted!')\r\n } else {\r\n //show modal\r\n toast.error('Oops, the NFT Transfer failed!')\r\n isOk = false;\r\n }\r\n cback(isOk);\r\n });\r\n};\r\n","import axios from 'axios';\r\nimport { get } from 'lodash';\r\nimport versionObj from '../config/version.json';\r\n\r\n\r\nconst UI_VERSION = versionObj.HIVE_MARKETPLACE_VERSION;\r\nif (!window.version) {\r\n window.version = { UI_VERSION };\r\n const originalVersion = window.version;\r\n try {\r\n Object.defineProperty(window, 'version', { value: originalVersion, writable: false });\r\n } catch (_) {} // eslint-disable-line\r\n}\r\n\r\n\r\nconst API_URL = window.location.hostname === 'localhost'\r\n ? 'http://localhost:9090'\r\n : 'https://api.crypto-shots.com';\r\n\r\n\r\n// import authHeader from './authHeader';\r\nexport function client(endpoint, { method, body, contentType = 'application/json', ...customConfig } = {}) {\r\n const options = {\r\n url: `${API_URL}${endpoint}?chain=hive`,\r\n method,\r\n ...customConfig,\r\n data: body,\r\n headers: {\r\n 'Content-Type': contentType,\r\n 'X-FE-VERSION': `M_v${get(window, 'version.UI_VERSION')}`,\r\n // plus axios.defaults.headers.common.Authorization set with JWT token\r\n },\r\n }\r\n console.debug('-- Sending api request:', options);\r\n const response = axios(options);\r\n return response;\r\n}\r\n\r\nclient.get = function(endpoint, customConfig = {}) {\r\n return client(endpoint, {...customConfig, method: 'GET' })\r\n};\r\n\r\nclient.post = function(endpoint, body, customConfig = {}) {\r\n return client(endpoint, {...customConfig, method: 'POST', body })\r\n};\r\n\r\nclient.postForm = function(endpoint, body, customConfig = {}) {\r\n return client(endpoint, { method: 'POST', body, contentType: false })\r\n};\r\n\r\nclient.put = function(endpoint, body, customConfig = {}) {\r\n return client(endpoint, {...customConfig, method: 'PUT', body })\r\n};\r\n\r\nclient.delete = function(endpoint, body, customConfig = {}) {\r\n return client(endpoint, {...customConfig, method: 'DELETE', body })\r\n};\r\n","\r\nexport const nap = ms => new Promise(resolve => setTimeout(resolve, ms));\r\n","import { toast } from \"react-toastify\";\r\nimport axios from 'axios';\r\n\r\nimport { client } from \"../helpers/client\";\r\nimport { nap } from \"./generalUtils\";\r\n\r\n\r\n// ## LOGIN\r\n\r\nconst onSignatureSuccess = async ({ user, response, message, resolve }) => {\r\n // ## Keychain signature success\r\n console.log('Keychain requestSignBuffer:', user, response);\r\n if (response.error) {\r\n const errMsg = 'Keychain signing failed';\r\n console.log(errMsg, response.error);\r\n toast.error(errMsg);\r\n return resolve({ err: errMsg });\r\n }\r\n // ## Verification API request\r\n let resHiveUserVerify;\r\n try {\r\n resHiveUserVerify = await client.post('/api/auth/verify',\r\n { username: user, message, signed_message: response.result },\r\n );\r\n } catch (err) {\r\n alert('Unable to authenticate. Are you on a stable connection? Trying again in 30 seconds..');\r\n await nap(30 * 1000);\r\n resHiveUserVerify = await client.post('/api/auth/verify',\r\n { username: user, message, signed_message: response.result },\r\n );\r\n }\r\n if (resHiveUserVerify.status !== 200 || resHiveUserVerify.data.result !== 'success') {\r\n toast.error('Uh oh, something went wrong authenticating your signature');\r\n return resolve({ err: 'api verification ko' });\r\n }\r\n // ## Set JWT header\r\n const headerValue = `Bearer ${resHiveUserVerify.data.token}`;\r\n axios.defaults.headers.common['Authorization'] = headerValue;\r\n resolve({});\r\n};\r\n\r\nexport const authenticateWithBE = ({ user }) => new Promise((resolve) => {\r\n const message = `${user}_${Date.now()}`;\r\n window.hive_keychain.requestSignBuffer(\r\n user,\r\n message,\r\n 'Posting',\r\n (response) => onSignatureSuccess({ user, response, message, resolve }),\r\n )\r\n});\r\n\r\n\r\n// ## GET PACK CONTENTS FROM BACKEND\r\n\r\nexport const sendTxAndBlockToBE = async ({ user, tx, block }) => {\r\n try {\r\n // CREATE USER IF DOES NOT EXIST\r\n let testCallResp;\r\n try {\r\n testCallResp = await client.post('/api/user/get',\r\n { account: user },\r\n { timeout: 2 * 60 * 1000 },\r\n );\r\n } catch (err) {\r\n alert('Unable to lookup your identity. Are you on a stable connection? Trying again in 30 seconds..');\r\n await nap(30 * 1000);\r\n testCallResp = await client.post('/api/user/get',\r\n { account: user },\r\n { timeout: 2 * 60 * 1000 },\r\n );\r\n }\r\n if (testCallResp.status > 300) {\r\n console.error('account creation/lookup call fail:', { testCallResp });\r\n toast.error('Uh oh, something went wrong looking up your account');\r\n return ({ err: 'something broke looking up your identity' });\r\n } else { console.log('LFG >>>> []', { testCallResp }); }\r\n } catch (err) {\r\n console.error('Caught error during account creation/lookup:', err);\r\n return({ err: `Caught during account creation/lookup: ${err} - ${JSON.stringify(err)}` });\r\n }\r\n try {\r\n // SEND OPEN PACK REQUEST TO API\r\n let claimPackResp;\r\n try {\r\n claimPackResp = await client.post('/api/hive/pack-open',\r\n { account: user, trxId: tx, blockNum: block },\r\n );\r\n // handleDeprecatedClient();\r\n } catch (err) {\r\n alert('Unable to process your transaction. Are you on a stable connection? Trying again in 30 seconds..');\r\n await nap(30 * 1000);\r\n claimPackResp = await client.post('/api/hive/pack-open',\r\n { account: user, trxId: tx, blockNum: block },\r\n );\r\n }\r\n if (claimPackResp.status !== 200) {\r\n toast.error('Uh oh, something went wrong claiming your pack');\r\n return ({ err: 'nft claim failed' });\r\n }\r\n console.log('pack nft claim success');\r\n return ({});\r\n } catch (err) {\r\n console.error('Caught error during pack opening:', err);\r\n return({ err: `Caught during pack opening: ${JSON.stringify(err?.response?.data || err.message)}\r\n ${Object.keys(err)}\r\n ${err}` });\r\n }\r\n};\r\n\r\n\r\n// export const handleDeprecatedClient = (data = {}) => {\r\n// // {\r\n// // error: `You are using a deprecated version of our website (${clientVersion}).\r\n// // Please clear your browser cache and try again.`,\r\n// // deprecated: true,\r\n// // }\r\n// const { deprecated, error } = data;\r\n// isLocal && console.debug('[depre] checking for deprecation msg:', { data, deprecated, error });\r\n// if (deprecated) {\r\n// window.alert(error);\r\n// throw new Error('deprecated-client');\r\n// }\r\n// return data;\r\n// };\r\n","import hive from '@hiveio/hive-js';\r\nimport { get } from 'lodash';\r\nimport { isLocal, symbolPack, unboxerAccount } from '../config/config';\r\nimport { onHandleNFTTransferAction } from './actions/nftMarketSell';\r\nimport { authenticateWithBE, sendTxAndBlockToBE } from './auth';\r\nimport { nap } from './generalUtils';\r\nimport { warmupLambdas } from './apis/warmup';\r\n\r\n\r\nconst hiveNodes = [\r\n 'https://anyx.io',\r\n 'https://api.hive.blog',\r\n 'https://api.deathwing.me',\r\n];\r\n\r\nconst pickHiveNode = () => {\r\n const randId = Math.floor(Math.random() * hiveNodes.length);\r\n const pickedNode = hiveNodes[randId];\r\n return pickedNode;\r\n};\r\n\r\nconst setRandNode = () => {\r\n const pickedNode = pickHiveNode();\r\n console.log('picked Hive node:', pickedNode);\r\n hive.api.setOptions({ url: pickedNode });\r\n};\r\nsetRandNode();\r\n\r\n\r\n// ## USERNAME VALIDATION\r\n\r\nexport const validateUsername = ({ username }) => new Promise((resolve) => {\r\n // username format validation (dots, lenght, etc)\r\n const err = hive.utils.validateAccountName(username);\r\n if (err) {\r\n console.error('Invalid scholar name. Reason:', err);\r\n return resolve({ err });\r\n }\r\n // check account exists\r\n try {\r\n hive.api.getAccounts([username], (err, result) => {\r\n if (get(result, '[0].name') !== username) resolve({ err: 'account not found' });\r\n else resolve({});\r\n });\r\n } catch (err) {\r\n console.error('Caught err validating uname:', err);\r\n return ({ err });\r\n }\r\n});\r\n\r\n\r\n// ## UNBOXING\r\n\r\nconst dhive = require('@hiveio/dhive');\r\nlet client;\r\nconst SCAN_TIMEOUT = 2.8 * 60 * 1000;\r\nconst DELAY_BETWEEN_UNPACKS = 70 * 1000; // keep synched with api\r\nlet stream;\r\n\r\nlet startTime = 0;\r\nlet nftTransferDone = false;\r\nlet streamingStarted = false;\r\nlet pickedHiveNode;\r\n\r\n\r\nconst cleanupAfterScan = () => {\r\n isLocal && console.debug('cleaning up after scan');\r\n stream && stream.pause();\r\n stream = null; // TRY ALWAYS NEW STREAM TO SEE IF FEWER ISSUES\r\n clearTimeout(scanTimeoutTs);\r\n};\r\n\r\nexport const transferNftAndListenChain = ({ nftId, user }) => new Promise(async (resolve) => {\r\n if ((Date.now() - startTime) < DELAY_BETWEEN_UNPACKS) {\r\n return resolve({ err: 'Please wait about a minute between unpacks', skipNotify: true });\r\n }\r\n // warmup lambdas to avoid timeouts\r\n warmupLambdas();\r\n\r\n nftTransferDone = false;\r\n startTime = Date.now();\r\n nftTransferDone = false;\r\n streamingStarted = false;\r\n pickedHiveNode = pickHiveNode();\r\n try {\r\n // 1. ## Start litening for tx ID and block #\r\n console.log('Streaming the chain to find NFT transfer..');\r\n listenForNFtTransferOnChain({ user, nftId, resolve });\r\n await nap(5000); // COLD BOOT WAIT TIME\r\n if (!streamingStarted) await nap(10 * 1000);\r\n if (!streamingStarted) {\r\n console.error('Hive scan did not start. Waited seconds:', (Date.now() - startTime) / 1000);\r\n return resolve({ err: `Hive scan start timeout for node ${pickedHiveNode}. Try again.` });\r\n }\r\n // 2. ## Transfer\r\n console.log('Unpacking box mint', nftId);\r\n onHandleNFTTransferAction(\r\n window.hive_keychain, user, [nftId].map(String),\r\n unboxerAccount, symbolPack,\r\n async (isOk) => {\r\n if (isOk) {\r\n nftTransferDone = true;\r\n } else {\r\n console.error('nft transfer failed.');\r\n resolve({ err: 'nft transfer ko' });\r\n cleanupAfterScan();\r\n }\r\n },\r\n );\r\n } catch (err) {\r\n alert(`Caught in unboxing: ${err} - ${JSON.stringify(err)}`);\r\n resolve({ err: 'caught error while unboxing' });\r\n }\r\n});\r\n\r\nlet lostBlocks = 0;\r\nlet scanTimeoutTs;\r\n\r\nconst listenForNFtTransferOnChain = ({ user, nftId, resolve, useNewNode = false }) => {\r\n client = new dhive.Client(useNewNode ? pickHiveNode() : pickedHiveNode);\r\n // ## Handle Timeout\r\n scanTimeoutTs = setTimeout(() => {\r\n console.error('Killing stream. Took too long.');\r\n resolve({ err: nftTransferDone ? 'scan-timeout' : 'forgot-accept-transfer' });\r\n cleanupAfterScan();\r\n }, SCAN_TIMEOUT);\r\n // ## Active Streaming\r\n try {\r\n if (stream && !useNewNode) {\r\n isLocal && console.debug('<> re-using existing stream');\r\n stream.resume();\r\n } else {\r\n isLocal && console.debug('<> creating new stream');\r\n stream = client.blockchain.getBlockStream();\r\n }\r\n stream\r\n .on('data', async (block = { transactions: [] }) => {\r\n // isLocal && console.log(new Date(), '----- received block:', block);\r\n streamingStarted = true;\r\n const foundInfo = findNftTransfer({ block, user, nftId });\r\n if (foundInfo) {\r\n isLocal && console.debug('TRANSFER TX FOUND!', { foundInfo });\r\n // check no errors in HE - best effort: if error ko, if breaks ok\r\n const { err: heErrArr } = await heHasNoErrors({ tx: foundInfo.tx });\r\n if (heErrArr) {\r\n resolve({ err: heErrArr });\r\n cleanupAfterScan();\r\n return;\r\n }\r\n const seconds = (Date.now() - startTime) / 1000;\r\n const { tx, block } = foundInfo;\r\n cleanupAfterScan();\r\n resolve ({ tx, block, seconds });\r\n }\r\n })\r\n .on('error', async (err) => {\r\n console.log('Stream error:', err);\r\n if (err.message === 'Request Timeout') {\r\n isLocal && console.log('Node timeout, trying new stream with other node..');\r\n listenForNFtTransferOnChain({ user, nftId, resolve, useNewNode: true });\r\n }\r\n lostBlocks++;\r\n if (lostBlocks >= 5) {\r\n cleanupAfterScan();\r\n resolve({ err: 'Client missed too many blocks of the Hive blockchain' });\r\n }\r\n })\r\n .on('end', (arg) => console.log('Done streaming', arg));\r\n } catch (err) {\r\n console.error('Caught error starting stream:', err);\r\n resolve({ err: 'getBlockStream broke' });\r\n }\r\n};\r\n\r\n// TODO: add mainnet ID check @@\r\nconst findNftTransfer = ({ block = {}, user: sender, nftId } = {}) => {\r\n const foundInfo = block.transactions.map(\r\n (blockData = {}, txIndex) => {\r\n const currentBlockNum = blockData.block_num;\r\n const foundOp = get(blockData, 'operations', [])\r\n .find(([name = '', data = {} ] = []) => {\r\n // isLocal && console.debug(`Tx ${txIndex}/${block.transactions.length} of current block..`);\r\n if (!name || name !== 'custom_json') return false;\r\n if (data.required_auths[0] !== sender) return false;\r\n console.debug(`-> checking operation \"${name}\" of tx ${txIndex} with sender ${sender}..`);\r\n try {\r\n const parsedJson = JSON.parse(data.json);\r\n console.log('VALIDATING the custom json sent by the user:', { currentBlockNum, parsedJson, nftId });\r\n return isCsPackTransfer({ parsedJson, nftId });\r\n } catch (err) { console.error(`Error parsing custom json:`, { txIndex, name, data }); }\r\n return false;\r\n });\r\n if (foundOp) return ({ block: currentBlockNum, tx: get(block, `transaction_ids[${txIndex}]`) });\r\n return null;\r\n }\r\n ).filter(el => !!el)[0];\r\n foundInfo && console.debug('Find NFT transfer outcome ::::', { foundInfo });\r\n return foundInfo;\r\n};\r\n\r\nconst isCsPackTransfer = ({ parsedJson, nftId }) => {\r\n // {\"contractName\":\"nft\",\"contractAction\":\"transfer\",\"contractPayload\":{\"to\":\"crypto-shots\",\"nfts\":[{\"symbol\":\"CSPACKS\",\"ids\":[\"1\"]}]}}\r\n if (!parsedJson) return false;\r\n const { contractName, contractAction, contractPayload = {} } = parsedJson;\r\n if (contractName !== 'nft' || contractAction !== 'transfer') return false;\r\n const { to, nfts = [{}] } = contractPayload;\r\n if (!to || to !== unboxerAccount || !nfts[0] || !nfts[0].symbol) return false;\r\n const { symbol, ids = [] } = nfts[0];\r\n if (symbol !== 'CSPACKS' || +ids[0] !== nftId) return false;\r\n console.log('Found it!', { parsedJson });\r\n return true;\r\n};\r\n\r\n\r\n\r\nconst heHasNoErrors = ({ tx }) => new Promise((resolve) => {\r\n console.log('Querying HE for tx', tx);\r\n try {\r\n const hiveEngineEndpoint = 'https://api.hive-engine.com/rpc/blockchain';\r\n fetch(hiveEngineEndpoint, {\r\n headers: {\r\n Accept: 'application/json',\r\n 'Content-Type': 'application/json',\r\n },\r\n referrer: 'https://he.dtools.dev/',\r\n body: `{\"jsonrpc\":\"2.0\",\"id\":1,\"method\":\"getTransactionInfo\",\"params\":{\"txid\":\"${tx}\"}}`,\r\n method: 'POST',\r\n })\r\n .then(res => res.json())\r\n .then(({ result = {} } = {}) => {\r\n isLocal && console.log('Data from HE:', result?.logs);\r\n try {\r\n const parsedJson = JSON.parse(result.logs);\r\n const { errors: errorsArr } = parsedJson || {};\r\n if (errorsArr && errorsArr.length) {\r\n console.error('Found errrors in HE:', { errorsArr });\r\n resolve({ err: errorsArr });\r\n return;\r\n }\r\n resolve({});\r\n } catch (err) {\r\n console.error('Error parsing custom json:', JSON.stringify({ result }));\r\n resolve({}); // best effort\r\n }\r\n })\r\n } catch (err) {\r\n console.error('Something broke fetching HE tx:', err);\r\n resolve({}); // best effort\r\n }\r\n});\r\n\r\n\r\nexport const sendTxToBackend = async ({ user, tx, block }) => {\r\n // 3. ## BE authentication (JWT)\r\n try {\r\n console.log('Authenticating with Keychain and API..');\r\n const { err: errAuth } = await authenticateWithBE({ user });\r\n if (errAuth) return ({ err: 'The authentication required to claim packs failed' });\r\n } catch (err) {\r\n alert('Unable to authenticate. Are you on a stable connection? Trying again in 30 seconds..');\r\n await nap(30 * 1000);\r\n const { err: errAuthRetry } = await authenticateWithBE({ user });\r\n if (errAuthRetry) return ({ err: 'The authentication required to claim packs failed' });\r\n }\r\n // 3. ## Send Tx and Block to API (using JWT)\r\n try {\r\n console.log('Sending Tx to receive NFTs..');\r\n const { err: errClaimContents } = await sendTxAndBlockToBE({ user, tx, block });\r\n if (errClaimContents) return ({ err: errClaimContents });\r\n } catch (err) {\r\n alert('Unable to process the transaction. Are you on a stable connection? Trying again in 30 seconds..');\r\n await nap(30 * 1000);\r\n const { err: errClaimContentsRetry } = await sendTxAndBlockToBE({ user, tx, block });\r\n if (errClaimContentsRetry) return ({ err: errClaimContentsRetry });\r\n }\r\n console.log('success!');\r\n return({});\r\n};\r\n","import { client } from \"../../helpers/client\";\r\n\r\nexport const warmupLambdas = () => {\r\n client.get('/api/health/version');\r\n};\r\n","import React from 'react';\r\n\r\nexport const UnboxingMsg = ({\r\n status = '', tx = '', user = '', nftId,\r\n setLoading = () => {}, errTransfer, seconds,\r\n}) => {\r\n let msg;\r\n switch (status) {\r\n case 'init': {\r\n msg =
\r\n Unboxing in progress. Please \r\n DO NOT CLOSE OR MINIMIZE THIS WINDOW\r\n until complete!   (takes about 1 min)\r\n
;\r\n break;\r\n }\r\n case 'errorTransferAndScan': {\r\n const errMsg = Array.isArray(errTransfer) ? errTransfer.join('; ') : errTransfer;\r\n msg =
\r\n setLoading({ value: false })} style={{ cursor: 'pointer' }}>\r\n ❌\r\n \r\n   UNBOXING of pack {nftId} FAILED. Please make sure that your \r\n transfer was successful.\r\n
{tx &&

Transaction:   \r\n {tx}

}\r\n
{errTransfer &&

Error:   {errMsg}

}\r\n
;\r\n break;\r\n }\r\n case 'errorClaim': {\r\n const errMsg = Array.isArray(errTransfer) ? errTransfer.join('; ') : errTransfer;\r\n msg =
\r\n setLoading({ value: false })} style={{ cursor: 'pointer' }}>\r\n ❌\r\n \r\n   UNBOXING of pack {nftId} FAILED. Please reach out to our mods to receive your NFTs.\r\n
{tx &&

Transaction:   \r\n {tx}

}\r\n
{errTransfer &&

Error:   {errMsg}

}\r\n
;\r\n break;\r\n }\r\n case 'success': {\r\n msg =
\r\n ✔️ UNBOXING COMPLETED. LFG!!\r\n

Transaction:   \r\n {tx}   (unboxing took {seconds.toFixed(0)}s)\r\n

\r\n
;\r\n break;\r\n }\r\n default: break;\r\n }\r\n return

{msg}

;\r\n};\r\n","import { isLocal } from \"../../config/config\";\r\nimport { nap } from \"../generalUtils\";\r\n\r\nconst MY_ID = '898594874419453973';\r\nconst THOR_ID = '928699605670039703';\r\nconst MODS_ID = '1007549113350492282';\r\n\r\n\r\nlet firstTry = false;\r\n\r\nexport const triggerAlert = async ({ type, nftId, user, err, tx, block, seconds }) => {\r\n if (isLocal) return;\r\n if (!firstTry) { firstTry = true; }\r\n const discordUrl = 'https://discord.com/api/webhooks/1010870661306138645/u0hfMztJUMbXhn-SFlaRCZvwObuHd3d4OvbhqXhIQIi1YQjRat8x00XOEeJnPA1gxPgz';\r\n try {\r\n fetch(\r\n discordUrl,\r\n {\r\n headers: {\r\n Accept: 'application/json',\r\n 'Content-Type': 'application/json',\r\n },\r\n method: 'POST',\r\n body: JSON.stringify({\r\n content: `<@${MY_ID}>\r\n Issue with pack:\r\n ${JSON.stringify({ type, nftId, user, err, tx, block, seconds }, null, 2)}\r\n `,\r\n }),\r\n },\r\n )\r\n .then((res) => {\r\n console.log('Discord msg published for pack issue.', res);\r\n firstTry = true; // reset\r\n })\r\n .catch(async (err) => {\r\n console.error('Something went wrong publishing to discord.', err);\r\n retryInLoop({ type, nftId, user, err, tx, block, seconds });\r\n });\r\n } catch (err) {\r\n console.error('Caught error publishing to discord.', err);\r\n retryInLoop({ type, nftId, user, err, tx, block, seconds });\r\n }\r\n};\r\n\r\nconst retryInLoop = async ({ type, nftId, user, err, tx, block, seconds }) => {\r\n if (firstTry) alert('noitcennoc elbats a no era uoy erus ekam esaelp ,gniliaf era stseuqer krowteN'.split('').reverse().join(''));\r\n await nap(5 * 1000);\r\n triggerAlert({ type, nftId, user, err, tx, block, seconds });\r\n};\r\n","import React from 'react';\r\nimport '../scss/components/Ads.scss';\r\n\r\n\r\nconst ADS_ENABLED = true;\r\n\r\nexport const AnonAdLanding = () => {\r\n if (!ADS_ENABLED) return null;\r\n return (\r\n
\r\n \r\n
\r\n );\r\n};\r\n\r\nexport const AnonAdCorner = () => {\r\n if (!ADS_ENABLED) return null;\r\n return (\r\n
\r\n \r\n
\r\n );\r\n};\r\n","\r\nexport const extractCategories = ({ hiveNfts = [] }) => {\r\n const categories = [];\r\n hiveNfts.forEach(nft => nft.properties.schema && categories.push(nft.properties.schema));\r\n const noDupes = Array.from(new Set(categories));\r\n return noDupes; // .reverse();\r\n};\r\n\r\n\r\nexport const capitalize = (ss = '') => ss[0] && ss[0].toUpperCase() + ss.slice(1);\r\n\r\nexport const parseSchemaName = (category = '') => {\r\n const [part1, part2] = category.split('.');\r\n return `${capitalize(part1)} ${capitalize(part2) || ''}`;\r\n};\r\n","\r\nconst BEACON_URL_HE = 'https://beacon.peakd.com/api/he/nodes';\r\n\r\n// testnet: 'https://enginetestnet.rishipanthee.com/contracts'\r\nconst FALLBACK_NODE = 'https://engine.hive.pizza';;\r\n\r\nconst REQUIRED_FEATURES = ['is_full'];\r\n\r\nconst VERBOSE = true;\r\n\r\n\r\nconst withPath = (url) => `${url}/contracts`;\r\n\r\n\r\nexport const findHealthyNode = async () => {\r\n const response = await fetch(BEACON_URL_HE);\r\n if (!response.ok) {\r\n console.error(`Failed to fetch node data: ${response.status} ${response.statusText}`);\r\n return withPath(FALLBACK_NODE);\r\n }\r\n const data = await response.json();\r\n VERBOSE && console.log('[he-nfts] Beacon health response:', data);\r\n const validNodes = data.filter((node = {}) => {\r\n if (node.fail !== 0) return false;\r\n if (!Array.isArray(node.features)) return false;\r\n return REQUIRED_FEATURES.every((feature) => node.features.includes(feature));\r\n });\r\n\r\n // We pick the first valid node whose endpoint responds successfully, else try the next\r\n const nodesToCheck = [FALLBACK_NODE, ...validNodes];\r\n for (const node of nodesToCheck) {\r\n VERBOSE && console.log('[he-nfts] Double checking health status for', node);\r\n try {\r\n const testRes = await fetch(node.endpoint);\r\n if (testRes.ok) {\r\n // We found a healthy node\r\n return withPath(node.endpoint);\r\n }\r\n } catch (err) {\r\n console.warn(`Request failed for ${node.endpoint}, trying next...`);\r\n }\r\n }\r\n\r\n console.error('No healthy node found among the available options from', BEACON_URL_HE);\r\n return withPath(FALLBACK_NODE);\r\n};\r\n","import React, { useEffect, useState } from 'react';\r\nimport axios from 'axios';\r\nimport { useSelector } from 'react-redux';\r\nimport { Client } from \"@hiveio/dhive\";\r\nimport { css } from \"@emotion/react\";\r\nimport PacmanLoader from \"react-spinners/PacmanLoader\";\r\nimport NftCard from '../components/NftCard';\r\nimport { onHandleNFTBulkSellAction, onHandleNFTsellAction, onHandleNFTTransferAction } from './../utils/actions/nftMarketSell';\r\nimport { symbolList, symbolNft, symbolPack } from '../config/config';\r\nimport { Button, Modal, Form } from 'react-bootstrap';\r\nimport { Link } from 'react-router-dom';\r\nimport { sendTxToBackend, transferNftAndListenChain, validateUsername } from '../utils/hiveLogic';\r\nimport { nap } from '../utils/generalUtils';\r\nimport { UnboxingMsg } from './UnboxingMsg';\r\nimport { triggerAlert } from '../utils/monitoring/triggerAlert';\r\nimport { AnonAdCorner } from '../components/Ads';\r\nimport { extractCategories, parseSchemaName } from '../utils/inventory/utils';\r\nimport { findHealthyNode } from '../utils/hive/healthyHiveNodes';\r\nimport './Home.scss';\r\n\r\n\r\n\r\n\r\n//** css for spinner */\r\nconst override = css`\r\ndisplay: block;\r\nmargin: 30px auto;\r\nborder-color: red;\r\n`;\r\n\r\n\r\nexport const Home = () => {\r\n let fetchUrl;\r\n let keychain = window.hive_keychain;\r\n\r\n // const apiEndpoint = process.env.REACT_APP_API_URL;\r\n const UserState = useSelector((store) => store.user);\r\n const [state, setState] = useState({\r\n price: \"\",\r\n currency: \"BEE\",\r\n });\r\n const [nftList, setNftList] = useState([]);\r\n const [loading, setLoading] = useState({ value: true, msg: '' });\r\n const [selectedNft, setSelectedNft] = useState([]);\r\n const [selTransferId, setSelTransferId] = useState(\"\");\r\n \r\n // Searches\r\n const [searchNftName, setNftSearch] = useState('');\r\n const [searchUserName, setUserSearch] = useState('');\r\n const [searchedAccount, setSearchedAccount] = useState('');\r\n\r\n const [show, setShow] = useState(false);\r\n const [bulkShow, setBulkShow] = useState(false);\r\n const [validated, setValidated] = useState(false);\r\n const [validatedTran, setValidatedTran] = useState(false);\r\n const [offset, setOffset] = useState(0);\r\n\r\n const handleClose = () => setShow(false);\r\n const handleBulkSellShow = () => setShow(true);\r\n const handleBulkTransfterClose = () => {setBulkShow(false); setSelTransferId(\"\")};\r\n const handleBulkTransfterShow = () => setBulkShow(true);\r\n \r\n const [currentNftSymbol, setCurrentNftSymbol] = useState(symbolNft);\r\n \r\n const toggleSingleAndPacks = (type) => {\r\n setLoading({ value: true });\r\n switch (type) {\r\n case 'pack': {\r\n setCurrentNftSymbol(symbolPack);\r\n setNftList([]);\r\n setOffset(0);\r\n break;\r\n }\r\n case 'single': {\r\n setCurrentNftSymbol(symbolNft);\r\n setNftList([]);\r\n setOffset(0);\r\n break;\r\n }\r\n default: { console.error('Unexpected type in NFT toggle:', type); }\r\n }\r\n };\r\n\r\n const fetchNftList = async ({ givenUsername = '' } = {}) => {\r\n setLoading({ value: true });\r\n if (!fetchUrl) {\r\n fetchUrl = await findHealthyNode();\r\n }\r\n return axios.post(fetchUrl, [{\r\n method: \"find\",\r\n jsonrpc: \"2.0\",\r\n params: {\r\n contract: \"nft\",\r\n table: `${currentNftSymbol}instances`, // `${symbolNft}instances`,\r\n query: { account: givenUsername || UserState.username },\r\n limit: 1000,\r\n offset: offset,\r\n indexes: []\r\n },\r\n id: 1\r\n }]).then((res) => {\r\n console.debug('NFTs for', currentNftSymbol, res.data);\r\n return res.data;\r\n })\r\n .catch(err => console.error('Caught error fetching NFT list:', err))\r\n .finally(() => setLoading({ value: false }));\r\n\r\n }\r\n\r\n useEffect(() => {\r\n (async function fetchData() {\r\n console.log('page loaded, fetching nfts');\r\n // const hiveClient = new Client('https://anyx.io');\r\n // let data = await hiveClient.database.getAccounts([UserState.username]);\r\n // console.log('hive user data:', UserState.username, data);\r\n let res = await fetchNftList();\r\n setNftList(res[0]?.result || []);\r\n })();\r\n }, [currentNftSymbol, offset]);\r\n\r\n const searchUserNfts = async () => {\r\n const givenUsername = searchUserName.replace('@', '');\r\n console.log('loading nfts for', givenUsername);\r\n const { err } = await validateUsername({ username: givenUsername });\r\n if (err) {\r\n alert(`Incorrect account. Error: ${err}`);\r\n return;\r\n }\r\n let res = await fetchNftList({ givenUsername });\r\n setNftList(res[0]?.result || []);\r\n setSearchedAccount(givenUsername);\r\n };\r\n\r\n const resetUserNfts = async () => {\r\n setUserSearch('');\r\n let res = await fetchNftList();\r\n setNftList(res[0]?.result || []);\r\n setSearchedAccount('');\r\n };\r\n\r\n\r\n const handleChange = (e) => {\r\n const {name, value} = e.target;\r\n setState({\r\n ...state,\r\n [name]: value,\r\n })\r\n }\r\n\r\n const handleCheck = (id, checked) => {\r\n let selected = selectedNft;\r\n selected = selected.filter(sel => sel !== id);\r\n if(checked) {\r\n selected.push(id);\r\n }\r\n setSelectedNft(selected);\r\n }\r\n\r\n const handleTransfer = (nftId) => {\r\n setSelTransferId(nftId);\r\n console.log(\"nftId to transfer: \", nftId);\r\n handleBulkTransfterShow();\r\n }\r\n\r\n const handleTransferSubmit = async (event) => {\r\n console.log(\"bulk transfter\");\r\n const form = event.currentTarget;\r\n event.preventDefault();\r\n if (form.checkValidity() === false) {\r\n event.stopPropagation();\r\n setValidatedTran(true);\r\n } else {\r\n let selNFTs = selectedNft;\r\n if(selTransferId) {\r\n selNFTs = [selTransferId];\r\n }\r\n const { err } = await validateUsername({ username: state.transfterToUser });\r\n if (err) {\r\n alert(`Incorrect username: ${err}`);\r\n return;\r\n }\r\n await onHandleNFTTransferAction(keychain, UserState.username, selNFTs, state.transfterToUser, currentNftSymbol);\r\n setSelTransferId(\"\");\r\n handleBulkTransfterClose();\r\n }\r\n }\r\n\r\n const handleUnboxing = async (nftId) => {\r\n setLoading({\r\n value: true,\r\n msg: ,\r\n });\r\n const { err: errTransfer, skipNotify, tx, block, seconds } = await transferNftAndListenChain({ nftId, user: UserState.username });\r\n if (errTransfer) {\r\n !skipNotify && triggerAlert({ type: 'transf', nftId, user: UserState.username, err: errTransfer, tx, block, seconds });\r\n setLoading({\r\n value: true,\r\n msg: ,\r\n hidePacman: true,\r\n });\r\n return;\r\n }\r\n const { err: errBackend } = await sendTxToBackend({ user: UserState.username, tx, block });\r\n if (errBackend) {\r\n triggerAlert({ type: 'backend', nftId, user: UserState.username, err: errBackend, tx, block, seconds });\r\n setLoading({\r\n value: true,\r\n msg: ,\r\n hidePacman: true,\r\n });\r\n return;\r\n }\r\n setLoading({\r\n value: true,\r\n msg: ,\r\n hidePacman: true,\r\n });\r\n await nap(10 * 1000);\r\n setLoading({ value: false });\r\n toggleSingleAndPacks('single');\r\n };\r\n\r\n const handleSubmit = async (event) => {\r\n const form = event.currentTarget;\r\n event.preventDefault();\r\n if (form.checkValidity() === false) {\r\n event.stopPropagation();\r\n setValidated(true);\r\n } else {\r\n await onHandleNFTBulkSellAction(keychain, UserState.username, selectedNft, state.price, state.currency, currentNftSymbol);\r\n handleClose();\r\n }\r\n };\r\n\r\n const isPacksView = currentNftSymbol === symbolPack;\r\n const isSingNftsView = currentNftSymbol === symbolNft;\r\n\r\n const handleSearchSubmit = async (event) => {\r\n event.preventDefault();\r\n searchUserNfts();\r\n };\r\n\r\n return (\r\n
\r\n
\r\n
\r\n

\r\n {searchedAccount\r\n ? <>\r\n @{searchedAccount}\r\n 's\r\n \r\n : 'MY'} NFTs\r\n

\r\n
\r\n\r\n
\r\n
\r\n toggleSingleAndPacks('single')}\r\n disabled={isSingNftsView}\r\n >\r\n ITEMS\r\n \r\n toggleSingleAndPacks('pack')}\r\n disabled={isPacksView}\r\n >\r\n PACKs\r\n \r\n
\r\n\r\n
\r\n
\r\n
\r\n setUserSearch(e.target.value)}\r\n />\r\n
\r\n
\r\n \r\n
\r\n
\r\n {searchUserName && }\r\n
\r\n
\r\n\r\n setNftSearch(e.target.value)}\r\n />\r\n
\r\n \r\n
\r\n
\r\n \r\n \r\n
\r\n
\r\n\r\n \r\n \r\n Sell Nfts\r\n \r\n
\r\n \r\n \r\n Price\r\n \r\n \r\n Please set the price correctly.\r\n \r\n \r\n \r\n Currency\r\n \r\n {symbolList.map((sym, index) => )}\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n
\r\n
\r\n\r\n \r\n \r\n {selTransferId ? \"\" : ''/*\"Bulk\"*/} Transfer {selectedNft.length || 1} NFT{selTransferId ? \"\" : \"s\"}\r\n \r\n
\r\n \r\n \r\n Username\r\n \r\n \r\n Please input the username.\r\n \r\n \r\n {/* \r\n Currency\r\n \r\n {symbolList.map((sym, index) => )}\r\n \r\n */}\r\n \r\n \r\n \r\n \r\n \r\n
\r\n
\r\n\r\n {(nftList.length >= 1000 || offset >= 1000) &&
\r\n setOffset(0)}\r\n disabled={offset === 0}>\r\n Page 1\r\n \r\n setOffset(1000)}\r\n disabled={offset === 1000}\r\n >\r\n Page 2\r\n \r\n {offset >= 1000 && setOffset(2000)}\r\n disabled={offset === 2000 || nftList.length < 1000}>\r\n Page 3\r\n }\r\n {offset >= 2000 && setOffset(3000)}\r\n disabled={offset === 3000 || nftList.length < 1000}>\r\n Page 4\r\n }\r\n
}\r\n {loading.value &&
\r\n {!loading.hidePacman\r\n &&
\r\n \r\n
\r\n }\r\n {loading.msg}\r\n
}\r\n\r\n {(!loading.value && nftList.length > 0)\r\n &&
\r\n
\r\n \r\n
\r\n
\r\n }\r\n {(!loading.value && !nftList.length) &&
\r\n
There are no {currentNftSymbol === symbolPack ? 'NFT Packs' : 'Gaming NFTs'} here.
\r\n
\r\n
\r\n

Buy some from other users here.

\r\n

Or if you listed yours on the market, they're here.

\r\n
\r\n
\r\n }\r\n
\r\n \r\n \r\n
\r\n );\r\n};\r\n\r\n\r\nconst AllYourFilteredNFTsInventory = ({ nftList, searches, actions, otherState }) => {\r\n const { searchedAccount, searchNftName } = searches;\r\n const { onHandleNFTsellAction, handleTransfer, handleCheck, handleUnboxing } = actions;\r\n const { currentNftSymbol, selectedNft } = otherState;\r\n\r\n const [collapsed, setCollapsed] = useState([]);\r\n\r\n const handleCollapse = (category) => {\r\n if (!collapsed.includes(category)) setCollapsed([...collapsed, category]);\r\n else setCollapsed([...collapsed.filter(cat => cat !== category)]);\r\n };\r\n\r\n const foundCategories = extractCategories({ hiveNfts: nftList });\r\n const filteredList = nftList.filter(\r\n nft => nft.properties.name\r\n && nft.properties.name.toLowerCase().includes(searchNftName.toLowerCase()),\r\n );\r\n\r\n const PageElements = ({ categoryItems }) =>

\r\n {categoryItems\r\n .sort((aa, bb) => (aa.properties.name > bb.properties.name)\r\n || (parseFloat(aa?._id) - parseFloat(bb?._id)))\r\n .map(\r\n (nft, index) =>\r\n

\r\n onHandleNFTsellAction(window.hive_keychain, nft, price, priceSymbol, currentNftSymbol)}\r\n actionType=\"Sell\"\r\n checked={selectedNft.findIndex(sel => sel === nft._id) >= 0}\r\n handleTransfer={handleTransfer}\r\n handleCheck={handleCheck}\r\n handleUnboxing={handleUnboxing}\r\n isPack={currentNftSymbol === symbolPack}\r\n hideButtons={!!searchedAccount}\r\n />\r\n
\r\n )\r\n }\r\n

;\r\n\r\n const CategorizedItems = ({ category }) => {\r\n const categoryItems = filteredList.filter(({ properties }) => properties.schema === category);\r\n return (\r\n <>\r\n handleCollapse(category)}\r\n >\r\n
\r\n {parseSchemaName(category)}\r\n
\r\n
[ {categoryItems.length} items ]
\r\n
\r\n \r\n
\r\n \r\n {collapsed.includes(category)\r\n ? <>\r\n : \r\n }\r\n \r\n );\r\n };\r\n\r\n return (\r\n <>\r\n {foundCategories\r\n .reverse()\r\n .map(category => )}\r\n \r\n );\r\n};\r\n","import { amdinAccount, chainID } from \"../../config/config\";\r\n\r\nexport const onHandleNFTMarketIssueAction = async(keychain, nftInfo, username, symbolNft) => {\r\n console.log('[debug] onHandleNFTMarketIssueAction', nftInfo, username);\r\n let toAccount = nftInfo.toAccount ?? amdinAccount;\r\n\r\n let data = {\r\n \"contractName\": \"nft\",\r\n \"contractAction\": \"issue\",\r\n \"contractPayload\": {\r\n \"symbol\": symbolNft,\r\n \"to\": toAccount,\r\n \"feeSymbol\": \"BEE\",\r\n \"properties\": {\r\n \"name\": nftInfo.name,\r\n \"schema\": nftInfo.schema,\r\n \"img\": nftInfo.img,\r\n \"description\": nftInfo.description\r\n }\r\n },\r\n \"memo\": \"issue NFT to \" + toAccount \r\n };\r\n\r\n keychain.requestCustomJson(username, chainID, \"Active\", JSON.stringify(data), \"Issue an NFT\", function(response) {\r\n if (response.success && response.result) {\r\n console.log('issue a NFT success>>>>', response.success, response.result);\r\n } else {\r\n console.log('issue a NFT error>>>>', response.result);\r\n }\r\n });\r\n\r\n}","import { toast } from \"react-toastify\";\r\nimport { amdinAccount, chainID } from \"../../config/config\";\r\n\r\nexport const onHandleNFTMarketMultipleIssueAction = async(keychain, nftInfo, username, symbolNft) => {\r\n console.log('[debug] onHandleNFTMarketMultipleIssueAction', nftInfo, username);\r\n let toAccount = nftInfo.toAccount ?? amdinAccount;\r\n\r\n let instances = [];\r\n let data = [];\r\n let countIssue = Math.floor(nftInfo.count / 10);\r\n let lastCountIssue = nftInfo.count % 10;\r\n\r\n if (countIssue > 1) {\r\n for (let j = 0; j < countIssue; j ++) { \r\n let instances10 = []; \r\n for(let i = 0; i < 10; i++) {\r\n instances10.push({\r\n // \"fromType\": \"user\",\r\n \"symbol\": symbolNft,\r\n \"to\": toAccount,\r\n \"feeSymbol\": \"BEE\",\r\n \"properties\": {\r\n name : nftInfo.name,\r\n schema : nftInfo.schema,\r\n img: nftInfo.img,\r\n description: nftInfo.description,\r\n }\r\n })\r\n }\r\n \r\n let issue10Nft = {\r\n \"contractName\": \"nft\",\r\n \"contractAction\": \"issueMultiple\",\r\n \"contractPayload\": {\r\n \"instances\": instances10\r\n },\r\n \"memo\": \"multiple issue for \" + toAccount \r\n };\r\n \r\n data.push(issue10Nft);\r\n }\r\n\r\n if (lastCountIssue > 0) {\r\n let instances_t = []; \r\n for(let i = 0; i < lastCountIssue; i++) {\r\n instances_t.push({\r\n // \"fromType\": \"user\",\r\n \"symbol\": symbolNft,\r\n \"to\": toAccount,\r\n \"feeSymbol\": \"BEE\",\r\n \"properties\": {\r\n name : nftInfo.name,\r\n schema : nftInfo.schema,\r\n img: nftInfo.img,\r\n description: nftInfo.description,\r\n }\r\n })\r\n }\r\n \r\n let issueNft_t = {\r\n \"contractName\": \"nft\",\r\n \"contractAction\": \"issueMultiple\",\r\n \"contractPayload\": {\r\n \"instances\": instances_t\r\n },\r\n \"memo\": \"multiple issue for \" + toAccount \r\n };\r\n \r\n data.push(issueNft_t);\r\n } \r\n } else {\r\n for(let i = 0; i < nftInfo.count; i++) {\r\n instances.push({\r\n // \"fromType\": \"user\",\r\n \"symbol\": symbolNft,\r\n \"to\": toAccount,\r\n \"feeSymbol\": \"BEE\",\r\n \"properties\": {\r\n name : nftInfo.name,\r\n schema : nftInfo.schema,\r\n img: nftInfo.img,\r\n description: nftInfo.description,\r\n }\r\n })\r\n }\r\n \r\n data = {\r\n \"contractName\": \"nft\",\r\n \"contractAction\": \"issueMultiple\",\r\n \"contractPayload\": {\r\n \"instances\": instances\r\n },\r\n \"memo\": \"multiple issue for \" + toAccount \r\n };\r\n }\r\n\r\n console.log('issue payload data', data);\r\n \r\n try {\r\n keychain.requestCustomJson(username, chainID, \"Active\", JSON.stringify(data), \"Issue multiple NFT\", function(response) {\r\n if (response.success && response.result) {\r\n //show modal\r\n toast.success('NFT issue success!');\r\n } else {\r\n //show modal\r\n toast.error('Oops, something went wrong issuing the NFTs!');\r\n console.error('Custom Json failed:', { response });\r\n }\r\n });\r\n } catch (err) {\r\n console.error('Caught error in requestCustomJson:', err);\r\n toast.error('Something broke while issuing the NFTs!');\r\n }\r\n};\r\n","import React, { useState } from 'react';\r\nimport { useSelector } from 'react-redux';\r\nimport { toast } from 'react-toastify';\r\nimport { onHandleNFTMarketIssueAction } from '../utils/actions/nftMarketIssue';\r\nimport { onHandleNFTMarketMultipleIssueAction } from '../utils/actions/nftMarketMultipleIssue';\r\nimport { symbolNft } from '../config/config';\r\nimport { NFT_INVENTORY} from '../config/inventory'\r\nimport { validateUsername } from '../utils/hiveLogic';\r\nimport './Administrator.scss';\r\n\r\n\r\nexport const Administrator = () => {\r\n const keychain = window.hive_keychain;\r\n const UserState = useSelector((store) => store.user);\r\n const [collectionName, setCollection] = useState(symbolNft);\r\n const [state, setState] = useState({\r\n toAccount: 'crypto-shots',\r\n name: \"\",\r\n schema: \"\",\r\n img: \"\",\r\n description: \"\",\r\n count: 1\r\n });\r\n const [issuedCounter, setIssuedCounter] = useState(0);\r\n\r\n const handleIssue = async (e) => {\r\n e.preventDefault();\r\n const { err } = await validateUsername({ username: state.toAccount });\r\n if (err) {\r\n alert(`Incorrect account. Error: ${err}`);\r\n return;\r\n }\r\n try {\r\n console.log(state);\r\n if (!state.count || state.count < 1) {\r\n toast.error(\"count should be at least 1.\");\r\n return;\r\n }\r\n if (!state.toAccount || !state.name || !state.schema || !state.img) {\r\n alert(`One of ther required fields is missing! ${JSON.stringify({ ...state })}`);\r\n return;\r\n }\r\n if (state.count === 1) { \r\n let res = await onHandleNFTMarketIssueAction(keychain, state, UserState.username, collectionName);\r\n console.log('>>>>res', res);\r\n toast.success(\"boadcast to issue the NFT success!\")\r\n } else {\r\n let res = await onHandleNFTMarketMultipleIssueAction(keychain, state, UserState.username, collectionName);\r\n console.log('>>>>res', res);\r\n toast.success(\"broadcast to issue multiple NFTs success!\")\r\n }\r\n setIssuedCounter(issuedCounter + state.count);\r\n } \r\n catch (err) {\r\n console.log(err);\r\n } \r\n }\r\n\r\n const handleChange = (e) => {\r\n console.log(e.target)\r\n let { name, value } = e.target;\r\n if (name === 'count') { value = Math.min(value, 40); }\r\n setState({\r\n ...state,\r\n [name]: value\r\n })\r\n }\r\n\r\n const handleSetProperties = (e) => {\r\n const { name: nameOg } = e.target;\r\n const { name: nameFallback } = e.currentTarget;\r\n const name = nameOg || nameFallback;\r\n try {\r\n console.log('name', name, NFT_INVENTORY[name]);\r\n setState({\r\n ...state,\r\n name: NFT_INVENTORY[name].name,\r\n schema : NFT_INVENTORY[name].schema,\r\n img: NFT_INVENTORY[name].img,\r\n description: NFT_INVENTORY[name].description,\r\n });\r\n setCollection(NFT_INVENTORY[name].collection);\r\n setIssuedCounter(0);\r\n } catch (err) {\r\n alert(name + ' broke to fill fields: ' + JSON.stringify(err));\r\n }\r\n }\r\n\r\n return (\r\n
\r\n
\r\n
\r\n

Administrator

\r\n
\r\n
\r\n
\r\n
Admin account : {UserState.username}
\r\n
\r\n
\r\n
\r\n\r\n
\r\n
\r\n
\r\n

Issue NFT


\r\n
\r\n
\r\n

to :

\r\n
\r\n
\r\n \r\n
\r\n
\r\n
\r\n
\r\n

name :

\r\n
\r\n
\r\n \r\n
\r\n
\r\n
\r\n
\r\n

schema :

\r\n
\r\n
\r\n \r\n
\r\n
\r\n
\r\n
\r\n

img :

\r\n
\r\n
\r\n \r\n
\r\n
\r\n
\r\n
\r\n

description :

\r\n
\r\n
\r\n \r\n
\r\n
\r\n
\r\n
\r\n

count :

\r\n
\r\n
\r\n \r\n
\r\n
\r\n
\r\n {state.description &&   {state.count}x    }\r\n {state.img && \"preview\"}\r\n {state.description && - collection: {collectionName}}\r\n {issuedCounter > 0 &&

Total issued: {issuedCounter}

}\r\n
\r\n
\r\n

\r\n
\r\n level0.packs\r\n \r\n \r\n
\r\n game.weapons\r\n \r\n \r\n \r\n
\r\n
\r\n game.characters\r\n \r\n \r\n
\r\n
\r\n

--------------------------------

\r\n game.items
\r\n
\r\n \r\n \r\n \r\n

\r\n \r\n
\r\n

--------------------------------

\r\n game.ammo\r\n \r\n \r\n

--------------------------------

\r\n
\r\n weapon.skins

\r\n \r\n \r\n \r\n
\r\n

--------------------------------

\r\n
\r\n
\r\n
\r\n cs.cybergirl\r\n
KIARA
\r\n \r\n \r\n \r\n \r\n
\r\n \r\n \r\n \r\n \r\n
\r\n \r\n \r\n
KARINA
\r\n \r\n \r\n \r\n \r\n
\r\n \r\n \r\n \r\n \r\n
\r\n \r\n \r\n
MARTE
\r\n \r\n \r\n \r\n \r\n
\r\n \r\n \r\n \r\n \r\n
\r\n \r\n \r\n
\r\n

--------------------------------

\r\n
\r\n early.access\r\n
PVP PASS
\r\n \r\n
\r\n
\r\n
\r\n
\r\n
2nd LEVEL
\r\n
\r\n
\r\n level1.packs\r\n \r\n \r\n
\r\n
\r\n game.weapons\r\n
\r\n \r\n \r\n \r\n
\r\n
\r\n
\r\n game.characters\r\n
\r\n \r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n
3rd LEVEL
\r\n
\r\n
\r\n level2.packs\r\n \r\n \r\n
\r\n
\r\n game.weapons\r\n \r\n \r\n \r\n
\r\n
\r\n game.characters\r\n \r\n \r\n
\r\n
\r\n

\r\n
\r\n
\r\n );\r\n}\r\n","import { Redirect, Route } from 'react-router-dom';\r\nimport React from 'react';\r\n// import { UserService } from './UserService';\r\nimport { useSelector } from 'react-redux';\r\n\r\nconst ProtectedRoute = ({ component: Component, ...rest }) => {\r\n const isLogged = useSelector(store => store.user.isLogged);\r\n return (\r\n {\r\n if (isLogged) {\r\n return \r\n } else {\r\n return \r\n }\r\n }\r\n } />\r\n )\r\n}\r\n\r\nexport default ProtectedRoute;","import { Redirect, Route } from 'react-router-dom';\r\nimport React from 'react';\r\nimport { useSelector } from 'react-redux';\r\nimport { amdinAccount } from './config/config';\r\n\r\n\r\nconst AdminRoute = ({ component: Component, ...rest }) => {\r\n const isLogged = useSelector(store => store.user.isLogged);\r\n \r\n const UserState = useSelector((store) => store.user);\r\n return (\r\n {\r\n if (isLogged && UserState.username === amdinAccount) {\r\n return \r\n } else {\r\n return \r\n }\r\n }\r\n } />\r\n )\r\n}\r\n\r\nexport default AdminRoute;","export default __webpack_public_path__ + \"static/media/cs-logo.4b5d171b.png\";","import './Events.scss';\r\n\r\nconst pastEvents = [\r\n
  • \r\n May '22: \r\n Force Field\r\n launch\r\n
  • ,\r\n
  • \r\n Aug '22: \r\n Starter packs\r\n launch, \r\n DOOM\r\n token launch\r\n
  • ,\r\n
  • \r\n Sep '22: on stage at Hive Fest '22\r\n
  • ,\r\n
  • \r\n Oct '22: Hive-Engine and Hive witness launch\r\n
  • ,\r\n
  • \r\n Jan '23: 2nd and 3rd level packs launch\r\n
  • ,\r\n
  • \r\n Feb '23: \r\n Liquidity Pool\r\n launch, ChatGPT Tipping bot launch\r\n
  • ,\r\n
  • \r\n May '23: Map Parts Land Sale, \r\n PVP Alpha Launch 🔥\r\n \r\n
  • ,\r\n
  • \r\n Jun '23: DOOM and HIVE as \r\n gaming rewards in PVP\r\n \r\n
  • ,\r\n];\r\n\r\n\r\nconst nextEvents = [\r\n
  • \r\n

    [tbd]

    \r\n LAND SALE:  SPACESHIP PARTS   #passiveincome\r\n
  • ,\r\n
  • \r\n [tbd]\r\n

    PVP Beta with NFTs integration & new skins!

    \r\n
  • \r\n];\r\n\r\n\r\nexport const Events = () => {\r\n return (\r\n
    \r\n {/* PAST EVENTS */}\r\n
    \r\n

    Past Events:

    \r\n
      \r\n {pastEvents}\r\n
    \r\n
    \r\n \r\n {/* COMING NEXT */}\r\n
    \r\n

    Coming Next:

    \r\n
      \r\n {nextEvents}\r\n
    \r\n
    \r\n
    \r\n );\r\n};\r\n","import React, { useEffect, useRef, useState } from 'react';\r\nimport { useSelector } from 'react-redux';\r\nimport { storeAppDispatch } from './../GlobalState/Store';\r\nimport { setPlayerData } from './../GlobalState/UserReducer';\r\nimport { Link, useHistory } from \"react-router-dom\";\r\nimport { toast } from \"react-toastify\"\r\nimport { Animated } from \"react-animated-css\";\r\nimport { UserService } from '../UserService';\r\nimport ExitIcon from '../images/exit.png';\r\nimport { setActiveTab } from '../GlobalState/MenuReducer';\r\nimport { client } from '../helpers/client';\r\nimport { AnonAdLanding } from '../components/Ads';\r\nimport CsLogo from '../images/cs-logo.png';\r\nimport { Events } from '../components/LandingPage/Events';\r\nimport '../scss/pages/landingPage.scss';\r\n\r\n\r\nexport const LandingPage = () => {\r\n const history = useHistory();\r\n const UserState = useSelector((store) => store.user);\r\n const userNameInputRef = useRef(null);\r\n\r\n const [userName, setUserName] = useState(localStorage.getItem('username'));\r\n const [isLoading, setIsLoading] = useState(false);\r\n\r\n const [fullyMounted, isFullyMounted] = useState(false);\r\n\r\n let usernameLetters = null;\r\n const cacheUname = () => usernameLetters && localStorage.setItem('username', usernameLetters);\r\n\r\n const handleLoginClick = () => {\r\n setIsLoading(true);\r\n cacheUname();\r\n };\r\n\r\n useEffect(() => {\r\n usernameLetters = userName;\r\n }, [userName]);\r\n\r\n useEffect(() => {\r\n if (!UserState.isLogged && UserState.loginType === \"keychain\") {\r\n userNameInputRef.current.focus();\r\n }\r\n }, [UserState.loginType]);\r\n\r\n useEffect(() => {\r\n setTimeout(() => isFullyMounted(true), 1);\r\n }, []);\r\n\r\n const login_hivesigner = () => {\r\n toast.warning(\"not implemented yet!\");\r\n };\r\n\r\n const display_login_keychain = () => {\r\n if (window.hive_keychain) {\r\n let keychain = window.hive_keychain\r\n console.log('hive keychain handshake!')\r\n keychain.requestHandshake(() => {\r\n const currentState = { ...UserState, loginType: \"keychain\" }\r\n storeAppDispatch(setPlayerData(currentState));\r\n console.log(\"handshake success!\", UserState);\r\n });\r\n } else {\r\n const currentState = { ...UserState, error: \"You do not have hive keychain installed\" }\r\n storeAppDispatch(setPlayerData(currentState));\r\n toast.error(\"Handshake failed!\");\r\n }\r\n };\r\n\r\n const login_keychain_submit = async (e) => {\r\n e.preventDefault();\r\n if (!window.hive_keychain) {\r\n setIsLoading(false);\r\n toast.error(\"Hive keychain browser extension not found!\");\r\n return;\r\n }\r\n let keychain = window.hive_keychain;\r\n if (!userName) {\r\n setIsLoading(false);\r\n return toast.warning('Put your username');\r\n }\r\n try {\r\n const message = userName + '_' + Date.now();\r\n keychain.requestSignBuffer(\r\n userName,\r\n message,\r\n \"Posting\",\r\n async function (response) {\r\n console.log('response of requestSignBuffer:', response);\r\n if (response.error) {\r\n console.log('hive keychain error:', response.error)\r\n toast.error(\"failed requestSignBuffer!\");\r\n setIsLoading(false);\r\n } else {\r\n let username = response.data.username\r\n console.log('response data', response.data)\r\n toast.success(\"Request signed and broadcasted\");\r\n \r\n const resHiveUserVerify = await client.post('/api/auth/verify', { username, message, signed_message: response.result });\r\n if (resHiveUserVerify.status === 200 && resHiveUserVerify.data.result === \"success\") {\r\n toast.success(\"Hive user is verified on backend successfully! \")\r\n const currentState = { ...UserState, username, isLogged: true };\r\n storeAppDispatch(setPlayerData(currentState));\r\n history.push('/home');\r\n storeAppDispatch(setActiveTab({ activeTab: 1 }));\r\n } else {\r\n toast.error(\"Hive user verify on backend is failed! \")\r\n const currentState = { ...UserState, username, isLogged: false };\r\n storeAppDispatch(setPlayerData(currentState));\r\n history.push('/login');\r\n setIsLoading(false);\r\n }\r\n }\r\n }\r\n );\r\n } catch (err) {\r\n setIsLoading(false);\r\n console.log(err);\r\n toast.error(\"Uh oh, something broke!\");\r\n }\r\n }\r\n\r\n const onHandleLogout = () => {\r\n UserService.logout();\r\n }\r\n\r\n\r\n return (<>\r\n \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n \"CS-logo\"\r\n
    \r\n

    Hive NFT Marketplace

    \r\n
    \r\n \"hive\r\n
    \r\n {(!UserState.isLogged && UserState.loginType === \"\") && (\r\n
    \r\n {UserState.error}\r\n {/* */}\r\n \r\n Log in with Hive Keychain\r\n \r\n
    \r\n No keychain extension?\r\n
    Click here to install.\r\n

    No Hive account yet?\r\n
    Create one for FREE here

    \r\n
    \r\n
    \r\n )}\r\n {(!UserState.isLogged && UserState.loginType === \"keychain\") && (\r\n <>\r\n {UserState.error}\r\n
    \r\n setUserName(e.target.value)}\r\n />\r\n \r\n  \r\n {isLoading\r\n ? \r\n : LOGIN}\r\n\r\n \r\n \r\n \r\n )}\r\n {UserState.isLogged &&
    \r\n

    Open session: @{UserState.username}

    \r\n

    \r\n Logout \"Exit\"\r\n
    \r\n }\r\n
    \r\n
    \r\n \r\n\r\n {fullyMounted && \r\n \r\n \r\n \r\n Our Recent Tweets\r\n \r\n
    \r\n\r\n {/* */}\r\n
    \r\n }\r\n \r\n \r\n
    \r\n );\r\n};\r\n","export default \"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABgAAAAYEAYAAACw5+G7AAAABGdBTUEAALGPC/xhBQAAACBjSFJNAAB6JgAAgIQAAPoAAACA6AAAdTAAAOpgAAA6mAAAF3CculE8AAAABmJLR0QAAAAAAAD5Q7t/AAAACXBIWXMAAABgAAAAYADwa0LPAAAAB3RJTUUH5QgCDBEgcYlZZwAAA81JREFUWMPVmFFMU2cUx//nXrRI1UEyKGzTQgsDAzIf+iSaiIuZJMvGA5BlpokKC2ZOaqYhLc2yxEQbjVvKXtQQZpYNEuaTmBpNJLg4a4hhIhXjUPiuhtE7MNCtiNzM3rOHwrLojPG2rPh/ul9y8z/nl3znO9/5CPNSL47kjOSUlfGY1Cg1trbSDziEQxUV3AkFismEBEUfIx/5msZfoAtdwaD0pe7QHS6X5Yq90F4YChn2DS9Tgkpw3TrK4Fme7e/nO7DDvmIFNeEu7k5Pcx2GMDQ9nTDAjyhFaVYWf4MiFGVlUSV06HNzWC47ZafDkTu4Nrg2ODT00sZqtugQHefPh8NCCMEcB/J6mZmZiRJNfEELfupFZauy1eNZiKd+JFjwhQuGjdUCcVAcfPhQfU1cEpdmZ+OBZDlZif83iCSFR4RbuGdmws2CBUciRv0k/p4iFDGZMEdn6MyjR0RERLHYYgHE/XUdl1GP+miUujGKUeM1lrZYib5Qu1GIQk3jXwFA03DnFQOQlqMc5U1NsZ0YxKAkGfVJGYDlr4JQQai7G20gJHBUGCZfbP3WI9aL9cXF6qfCJVxjY/HDprn5lQHAh2xjGzNvoRCFVq/mIPZi79Gjqk+wYLd7yQO8OWM7azs7PKy/T05yVlXhCtVTfTTKO6FA8fnCuwQL3rMnaTWgTomACLhc/B0CCOzbh7dQhKIkNMKAHtEjAJ4qFRrGSZw8fDhpAFyBG7hhsaADNaix2ZCHAhQkr5MDXM3V/1rV0jE6lpZG4Z+VBqUhGqV3IUOem8vV8k/ln8rOTl7gxPTPJfMNeaW8sqcHr3MP9+TkkEyd1On1LtkamOgSLDg395nEBzGOcb/fkm1tsbb4fKnrxC9Q7B3ewBvWrMEy1KHObKa3aYAGjh+3/GmttlY3N8evJMxLFiCvxHbTdvP6ddZ7B3oHMjMpWkmV9OTJ000vZVso/LniUlxVVeH2Uc+op6bmef+RNJ/4c5S6GviK/ew/cQLF0qQ0efq0UZvUAXyLe7hnMlEDe9iTZngrS+TkTM7UNKRzLdeazf/XQIMtaEf7qlX8AWywaZphAB6EDLmvb2EWVj9TKpSKlpbFGil/n7x/5P4RtxsZaESj2Uw/IYTQtWtGfWn8E8GCS0qoFW1o6+/HH9iGbRkZ5EMMsUiEN+Mczk1NJQrwzFBfghGMPH7MX0t9Up/DkVdv9Vq9t2+/tO/Ch1r+YOODjaWlXKZv17f7/fQL7+AdmzZxLyRI6ekJA8y/QnANDuDA1au0WQ/qwf37c9+zT9gnbt0y6vs3rBfZpqQSRJQAAAAldEVYdGRhdGU6Y3JlYXRlADIwMjEtMDgtMDJUMTI6MTc6MzIrMDA6MDBSpLyaAAAAJXRFWHRkYXRlOm1vZGlmeQAyMDIxLTA4LTAyVDEyOjE3OjMyKzAwOjAwI/kEJgAAAABJRU5ErkJggg==\"","import { toast } from \"react-toastify\";\r\nimport { amdinAccount, chainID } from \"../../config/config\";\r\n\r\nexport const onHandleNFTBuyAction = async(keychain, nft, username, currentNftSymbol) => {\r\n console.log('[debug] onHandleNFTBuyAction', nft, username);\r\n\r\n let data = {\r\n \"contractName\": \"nftmarket\",\r\n \"contractAction\": \"buy\",\r\n \"contractPayload\": {\r\n \"symbol\": currentNftSymbol,\r\n \"nfts\": [\r\n nft.nftId.toString()\r\n ],\r\n \"expPrice\": nft.price.toString(),\r\n \"expPriceSymbol\": nft.priceSymbol,\r\n \"marketAccount\": amdinAccount\r\n },\r\n \"memo\": \"extra field\"\r\n };\r\n\r\n keychain.requestCustomJson(username, chainID, \"Active\", JSON.stringify(data), \"Buy NFT\", function(response) {\r\n if (response.success && response.result) {\r\n //show modal\r\n toast.success('NFT purchase broadcasted!')\r\n } else {\r\n //show modal\r\n toast.error('Oops, the NFT purchase failed!')\r\n }\r\n });\r\n}\r\n\r\nexport const onHandleNFTBulkBuyAction = async(keychain, nfts, username, currentNftSymbol) => {\r\n console.log('[debug] onHandleNFTBulkBuyAction', nfts, username);\r\n\r\n let data = {\r\n \"contractName\": \"nftmarket\",\r\n \"contractAction\": \"buy\",\r\n \"contractPayload\": {\r\n \"symbol\": currentNftSymbol,\r\n \"nfts\": nfts,\r\n \"marketAccount\": amdinAccount\r\n },\r\n \"memo\": \"extra field\"\r\n };\r\n\r\n keychain.requestCustomJson(username, chainID, \"Active\", JSON.stringify(data), \"Buy NFT\", function(response) {\r\n if (response.success && response.result) {\r\n //show modal\r\n toast.success('NFT buy success!')\r\n } else {\r\n //show modal\r\n toast.error('Oops, the NFT purchase failed!')\r\n }\r\n });\r\n}","import { toast } from \"react-toastify\";\r\nimport { chainID } from \"../../config/config\";\r\n\r\nexport const onHandleNFTCancelAction = async (keychain, nft, username, currentNftSymbol) => {\r\n console.log('[debug] onHandleNFTCancelAction', nft, username);\r\n\r\n let data = {\r\n \"contractName\": \"nftmarket\",\r\n \"contractAction\": \"cancel\",\r\n \"contractPayload\": {\r\n \"symbol\": currentNftSymbol,\r\n \"nfts\": [\r\n nft.nftId.toString()\r\n ],\r\n },\r\n };\r\n\r\n keychain.requestCustomJson(username, chainID, \"Active\", JSON.stringify(data), \"Cancel selling NFT\", function(response) {\r\n if (response.success && response.result) {\r\n //show modal\r\n toast.success('NFT sale cancel broadcasted!')\r\n } else {\r\n //show modal\r\n toast.error('NFT sale cancel failed!')\r\n }\r\n });\r\n};\r\n\r\nexport const onHandleBulkNFTCancelAction = async(keychain, nfts, username, currentNftSymbol) => {\r\n console.log('[debug] onHandleBulkNFTCancelAction', nfts, username);\r\n\r\n let data = {\r\n \"contractName\": \"nftmarket\",\r\n \"contractAction\": \"cancel\",\r\n \"contractPayload\": {\r\n \"symbol\": currentNftSymbol,\r\n \"nfts\": nfts,\r\n },\r\n };\r\n\r\n keychain.requestCustomJson(username, chainID, \"Active\", JSON.stringify(data), \"Cancel selling Bulk NFTs\", function(response) {\r\n if (response.success && response.result) {\r\n //show modal\r\n toast.success('NFT sale cancel broadcasted!')\r\n } else {\r\n //show modal\r\n toast.error('NFT sale cancel failed!')\r\n }\r\n });\r\n};\r\n","import React from 'react'\r\nimport { Button, Modal } from 'react-bootstrap'\r\n\r\nexport default function ConfirmModal({\r\n show,\r\n handleHide,\r\n handleConfirm\r\n}) {\r\n return (\r\n \r\n \r\n Confirm\r\n \r\n Do you really want to do it?\r\n \r\n \r\n \r\n \r\n \r\n )\r\n}\r\n","import React, { useEffect, useState } from 'react';\r\nimport axios from 'axios';\r\nimport { UserService } from '../UserService';\r\nimport { useSelector } from 'react-redux';\r\nimport { Client } from \"@hiveio/dhive\";\r\nimport { css } from \"@emotion/react\";\r\nimport PacmanLoader from \"react-spinners/PacmanLoader\";\r\nimport { onHandleNFTBulkBuyAction, onHandleNFTBuyAction } from \"./../utils/actions/nftMarketBuy\"\r\nimport { onHandleNFTCancelAction, onHandleBulkNFTCancelAction } from \"./../utils/actions/nftMarketCancel\"\r\nimport NftCard from '../components/NftCard';\r\nimport { symbolNft, symbolPack } from '../config/config';\r\nimport { Button, Modal, Tab, Tabs } from 'react-bootstrap';\r\nimport ConfirmModal from '../components/ConfirmModal';\r\nimport { AnonAdCorner } from '../components/Ads';\r\nimport './Marketplace.scss';\r\nimport { extractCategories, parseSchemaName } from '../utils/inventory/utils';\r\nimport { findHealthyNode } from '../utils/hive/healthyHiveNodes';\r\n\r\n\r\nconst hiveClient = new Client('https://anyx.io');\r\n\r\nconst override = css`\r\ndisplay: block;\r\nmargin: 30px auto;\r\nborder-color: red;\r\n`;\r\n\r\n\r\nexport const Marketplace = () => {\r\n // const apiEndpoint = process.env.REACT_APP_API_URL;\r\n const UserState = useSelector((store) => store.user);\r\n const [nftList, setNftList] = useState([]);\r\n const [searchOwner, setSearchOwner] = useState('');\r\n const [searchNftName, setSearchNftName] = useState('');\r\n\r\n const [loading, setLoading] = useState(true);\r\n const [selectedOwnNft, setSelectedOwnNft] = useState([]);\r\n const [selectedNft, setSelectedNft] = useState([]);\r\n const [confirmShow, setConfirmShow] = useState(false);\r\n const [type, setType] = useState('');\r\n const [currentNftSymbol, setCurrentNftSymbol] = useState(symbolPack);\r\n const [offset, setOffset] = useState(0);\r\n\r\n const keychain = window.hive_keychain;\r\n\r\n let fetchUrl;\r\n\r\n const handleConfirmClose = () => setConfirmShow(false);\r\n\r\n const toggleSingleAndPacks = (type) => {\r\n setLoading(true);\r\n switch (type) {\r\n case 'pack': {\r\n setCurrentNftSymbol(symbolPack);\r\n setNftList([]);\r\n setOffset(0);\r\n break;\r\n }\r\n case 'single': {\r\n setCurrentNftSymbol(symbolNft);\r\n setNftList([]);\r\n setOffset(0);\r\n break;\r\n }\r\n default: { console.error('Unexpected type in NFT toggle:', type); }\r\n }\r\n };\r\n\r\n const fetchNftList = async () => {\r\n setLoading(true);\r\n if (!fetchUrl) {\r\n fetchUrl = await findHealthyNode();\r\n }\r\n try {\r\n let res = await axios.post(fetchUrl, [{\r\n method: \"find\",\r\n jsonrpc: \"2.0\",\r\n params: {\r\n contract: \"nftmarket\",\r\n table: `${currentNftSymbol}sellBook`,\r\n query: {},\r\n limit: 1000,\r\n offset: offset,\r\n indexes: []\r\n },\r\n id: 1\r\n }]);\r\n let marketNFT = res.data[0]?.result ?? [];\r\n\r\n let resAll = await axios.post(fetchUrl, [{\r\n method: \"find\",\r\n jsonrpc: \"2.0\",\r\n params: {\r\n contract: \"nft\",\r\n table: `${currentNftSymbol}instances`,\r\n query: { account: \"nftmarket\" },\r\n limit: 1000,\r\n offset: offset,\r\n indexes: []\r\n },\r\n id: 1\r\n }]);\r\n let allNftList = resAll.data[0]?.result ?? [];\r\n\r\n marketNFT = marketNFT.map(mNft => {\r\n let nft = allNftList.filter(_nft => _nft._id === Number(mNft.nftId))[0];\r\n if (!nft) return null; // @@\r\n return ({\r\n ...mNft,\r\n properties: nft.properties\r\n })\r\n }).filter(el => !!el);\r\n setLoading(false);\r\n console.log('marketNFT', currentNftSymbol, marketNFT);\r\n return marketNFT;\r\n } catch (err) {\r\n console.log('Caught error fetching NFT list:', err);\r\n setLoading(false);\r\n return [];\r\n }\r\n\r\n }\r\n\r\n useEffect(() => {\r\n (async function fetchData() {\r\n console.log(\"page loaded or NFT type changed (single vs pack)\");\r\n // if (nftList.length) return;\r\n let data = await hiveClient.database.getAccounts([UserState.username]);\r\n console.log('hive user data:', UserState.username, data);\r\n\r\n let marketNFT = await fetchNftList();\r\n console.log(marketNFT);\r\n setNftList(marketNFT);\r\n })();\r\n }, [currentNftSymbol, offset]);\r\n\r\n // useEffect(() => {\r\n // }, [selectedOwnNft])\r\n\r\n const handleOwnCheck = (id, checked) => {\r\n let selected = selectedOwnNft;\r\n selected = selected.filter(sel => sel !== id);\r\n if(checked) {\r\n selected.push(id);\r\n }\r\n setSelectedOwnNft(selected);\r\n }\r\n\r\n const handleCheck = (id, checked) => {\r\n let selected = selectedNft;\r\n selected = selected.filter(sel => sel !== id);\r\n if(checked) {\r\n selected.push(id);\r\n }\r\n setSelectedNft(selected);\r\n }\r\n\r\n const handleConfirm = async () => {\r\n if(type === \"buy\") {\r\n console.log('selectedNft', selectedNft);\r\n await onHandleNFTBulkBuyAction(keychain, selectedNft, UserState.username, currentNftSymbol);\r\n } else {\r\n console.log('selectedOwnNft', selectedOwnNft);\r\n await onHandleBulkNFTCancelAction(keychain, selectedOwnNft, UserState.username, currentNftSymbol);\r\n }\r\n setConfirmShow(false);\r\n }\r\n\r\n const isPacksView = currentNftSymbol === symbolPack;\r\n const isSingNftsView = currentNftSymbol === symbolNft;\r\n\r\n return (\r\n
    \r\n
    \r\n
    \r\n
    \r\n

    \r\n \r\n SWAP HIVE\r\n FOR SWAP.HIVE\r\n

    (soon we'll support purchases directly in Hive)

    \r\n

    \r\n

    \r\n \r\n SWAP WAX\r\n FOR SWAP.HIVE\r\n

    \r\n
    \r\n
    \r\n\r\n
    \r\n
    \r\n TRADE\r\n
    \r\n
    \r\n toggleSingleAndPacks('pack')}\r\n disabled={isPacksView}\r\n >\r\n PACKs\r\n \r\n toggleSingleAndPacks('single')}\r\n disabled={isSingNftsView}\r\n >\r\n ITEMS\r\n \r\n
    \r\n\r\n
    \r\n
    \r\n setSearchOwner(e.target.value)} />\r\n setSearchNftName(e.target.value)} style={{ marginTop: '5px' }} />\r\n
    \r\n
    \r\n\r\n
    \r\n {(nftList.length >= 1000 || offset >= 1000) &&
    \r\n setOffset(0)}\r\n disabled={offset === 0}>\r\n Page 1\r\n \r\n setOffset(1000)}\r\n disabled={offset === 1000}\r\n >\r\n Page 2\r\n \r\n setOffset(2000)}\r\n disabled={offset === 0 || offset === 2000 || nftList.length < 1000}>\r\n Page 3\r\n \r\n setOffset(3000)}\r\n disabled={offset === 0 || offset === 3000 || nftList.length < 1000}>\r\n Page 4\r\n \r\n
    }\r\n
    \r\n\r\n
    \r\n {loading &&
    \r\n \r\n
    }\r\n {(!loading && !nftList.length) &&
    You do not have Crypto Shots NFT listed for sale.
    }\r\n {!loading && \r\n \r\n\r\n {nftList.filter(nft => nft.account === UserState.username).length > 0\r\n ?
    \r\n
    \r\n
    \r\n {\r\n setConfirmShow(true);\r\n setType('cancel');\r\n }}\r\n >\r\n Bulk Cancel\r\n \r\n {/* onHandleBulkNFTCancelAction(keychain, selectedOwnNft, UserService.username, currentNftSymbol) */}\r\n
    \r\n
    \r\n \r\n
    \r\n :
    None
    \r\n }\r\n
         \r\n \r\n
    \r\n {\r\n setConfirmShow(true);\r\n setType('buy');\r\n }}>\r\n Bulk Buy\r\n \r\n
    \r\n
    \r\n \r\n
    \r\n
    \r\n
    }\r\n
    \r\n \r\n
    \r\n\r\n \r\n
    \r\n );\r\n};\r\n\r\nconst AllFilteredNFTsMarket = ({ nftList = [], searches, actions, otherState }) => {\r\n const { searchOwner, searchNftName } = searches;\r\n const { onHandleNFTBuyAction, handleCheck } = actions;\r\n const { currentNftSymbol, selectedNft } = otherState;\r\n const UserState = useSelector((store) => store.user);\r\n\r\n const [collapsed, setCollapsed] = useState([]);\r\n\r\n const handleCollapse = (category) => {\r\n if (!collapsed.includes(category)) setCollapsed([...collapsed, category]);\r\n else setCollapsed([...collapsed.filter(cat => cat !== category)]);\r\n };\r\n\r\n if (!nftList.length) return (
    None
    );\r\n\r\n const foundCategories = extractCategories({ hiveNfts: nftList });\r\n const filteredList = nftList.filter(\r\n nft => nft.account !== UserState.username\r\n && nft.account.toLowerCase().includes(searchOwner.toLowerCase())\r\n && nft.properties.name && nft.properties.name.toLowerCase().includes(searchNftName.toLowerCase().replace('@', ''))\r\n );\r\n\r\n const PageElements = ({ categoryItems }) =>

    \r\n {categoryItems\r\n .sort((aa, bb) => parseFloat(aa.price) - parseFloat(bb.price))\r\n .map((nft, index) =>\r\n

    \r\n onHandleNFTBuyAction(window.hive_keychain, nft, UserService.username, currentNftSymbol)}\r\n actionType=\"Buy\"\r\n checked={selectedNft.findIndex(sel => sel === nft.nftId) >= 0}\r\n handleCheck={handleCheck}\r\n />\r\n
    \r\n )}\r\n

    ;\r\n\r\n const CategorizedItems = ({ category }) => {\r\n const categoryItems = filteredList.filter(({ properties }) => properties.schema === category);\r\n return (\r\n <>\r\n
    handleCollapse(category)}>\r\n
    \r\n {parseSchemaName(category)}\r\n
    \r\n
    [ {categoryItems.length} items ]
    \r\n
    \r\n \r\n
    \r\n
    \r\n {collapsed.includes(category)\r\n ? <>\r\n : \r\n }\r\n \r\n );\r\n };\r\n\r\n return (\r\n <>\r\n {foundCategories.map(category => )}\r\n \r\n );\r\n};\r\n\r\n\r\nconst YourFilteredNFtsMarket = ({ nftList = [], searches, actions, otherState }) => {\r\n const { searchOwner, searchNftName } = searches;\r\n const { onHandleNFTCancelAction, handleOwnCheck } = actions;\r\n const { currentNftSymbol, selectedOwnNft } = otherState;\r\n const UserState = useSelector((store) => store.user);\r\n\r\n const [collapsed, setCollapsed] = useState([]);\r\n\r\n const handleCollapse = (category) => {\r\n if (!collapsed.includes(category)) setCollapsed([...collapsed, category]);\r\n else setCollapsed([...collapsed.filter(cat => cat !== category)]);\r\n };\r\n\r\n const foundCategories = extractCategories({ hiveNfts: nftList });\r\n const filteredList = nftList.filter(\r\n nft => nft.account === UserState.username\r\n // && nft.account.toLowerCase().includes(searchOwner.toLowerCase())\r\n && nft.properties.name && nft.properties.name.toLowerCase().includes(searchNftName.toLowerCase().replace('@', ''))\r\n );\r\n\r\n const PageElements = ({ categoryItems }) =>

    \r\n {categoryItems\r\n .sort((aa, bb) => parseFloat(aa.properties?.price) - parseFloat(bb.properties?.price))\r\n .map((nft, index) =>\r\n

    \r\n onHandleNFTCancelAction(window.hive_keychain, nft, UserService.username, currentNftSymbol)}\r\n actionType=\"Buy\"\r\n ownNFT\r\n checked={selectedOwnNft.findIndex(sel => sel === nft.nftId) >= 0}\r\n handleCheck={handleOwnCheck}\r\n />\r\n
    \r\n )\r\n }\r\n

    ;\r\n\r\n const CategorizedItems = ({ category }) => {\r\n const categoryItems = filteredList.filter(({ properties }) => properties.schema === category);\r\n return (\r\n <>\r\n
    handleCollapse(category)}>\r\n
    \r\n {parseSchemaName(category)}\r\n
    \r\n
    [ {categoryItems.length} items ]
    \r\n
    \r\n \r\n
    \r\n
    \r\n {collapsed.includes(category)\r\n ? <>\r\n : \r\n }\r\n \r\n );\r\n };\r\n \r\n return (\r\n <>\r\n {foundCategories.map(category => )}\r\n \r\n );\r\n};\r\n","import React from 'react';\r\nimport { Animated } from 'react-animated-css';\r\nimport './About.scss';\r\n\r\nexport const About = () => {\r\n return (
    \r\n \r\n
    \r\n
    \r\n
    \r\n

    Our Hive Accounts:

    \r\n
    \r\n\r\n

    Other socials:

    \r\n \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    \r\n
    );\r\n};\r\n","import './scss/App.scss';\r\nimport { Menu } from './components/Menu';\r\nimport { BrowserRouter, Redirect, Route, Switch } from 'react-router-dom';\r\nimport { Home } from './pages/Home';\r\nimport { Administrator } from './pages/Administrator';\r\nimport ProtectedRoute from './ProtectedRoute';\r\nimport AdminRoute from './AdminRoute';\r\nimport { LandingPage } from './pages/LandingPage';\r\nimport { toast } from 'react-toastify';\r\nimport { Marketplace } from './pages/Marketplace';\r\nimport { About } from './pages/About';\r\ntoast.configure({\r\n autoClose: 2500,\r\n});\r\n\r\nexport const PATHS = {\r\n LandingPage: '/',\r\n About: '/about-us',\r\n Home: '/home',\r\n Marketplace: '/marketplace',\r\n Administrator: '/administrator',\r\n};\r\n\r\nfunction App() {\r\n return (
    \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n
    \r\n );\r\n}\r\n\r\nexport default App;\r\n","const reportWebVitals = onPerfEntry => {\r\n if (onPerfEntry && onPerfEntry instanceof Function) {\r\n import('web-vitals').then(({ getCLS, getFID, getFCP, getLCP, getTTFB }) => {\r\n getCLS(onPerfEntry);\r\n getFID(onPerfEntry);\r\n getFCP(onPerfEntry);\r\n getLCP(onPerfEntry);\r\n getTTFB(onPerfEntry);\r\n });\r\n }\r\n};\r\n\r\nexport default reportWebVitals;\r\n","import React from 'react';\r\nimport ReactDOM from 'react-dom';\r\nimport { Provider } from 'react-redux';\r\nimport App from './App';\r\nimport Store from './GlobalState/Store';\r\nimport reportWebVitals from './reportWebVitals';\r\nimport { UserService } from './UserService';\r\n\r\nUserService.init();\r\n\r\nReactDOM.render(\r\n \r\n \r\n \r\n \r\n ,\r\n document.getElementById('root')\r\n);\r\n\r\n// If you want to start measuring performance in your app, pass a function\r\n// to log results (for example: reportWebVitals(console.log))\r\n// or send to an analytics endpoint. Learn more: https://bit.ly/CRA-vitals\r\nreportWebVitals();\r\n","const { symbolNft, symbolPack } = require(\"./config\");\r\n// Private key of OWNER is in .ENV FILE\r\n\r\nconst NFT_INVENTORY = {\r\n // ## level.packs\r\n // 1st level packs\r\n 'MYTHIC_PACK': {\r\n name: 'Mythic Pack',\r\n schema: 'level0.packs',\r\n img: 'QmWh8bw3XFtz63v5e1toDKfyw6PyUZWoGpFwnYdKLdudf5',\r\n description: '1x Mythic Ammo, 3x Base Gun, 1x Rifle, 1x Shotgun, 2x common and 1x rare character. Max supply: 80',\r\n collection: symbolPack,\r\n },\r\n 'STARTER_PACK': {\r\n name: 'Starter Pack',\r\n schema: 'level0.packs',\r\n img: 'QmYvCZ8UQ3eDDoosimGApRn4D5YzR2KiDFMVoq7uHDkKue',\r\n description: '1x Legendary Ammo, 1x Base Gun, 1x Rifle, 1x Shotgun, 1x common and 1x rare character',\r\n collection: symbolPack,\r\n },\r\n // 2nd level packs\r\n 'LEV_1_PACK_COMMON': {\r\n name: '2nd Level Pack, Common',\r\n schema: 'level1.packs',\r\n img: 'QmZw5a4cQCiVWhkQ8tKR7S2BwZbhoREb2NcEE82uQoxXKS',\r\n description: 'Weapons: 1x Savage (C), 1x Tremor (Rare), 1x Vortex (Epic). Characters: 2x Ivan (C)',\r\n collection: symbolPack,\r\n },\r\n 'LEV_1_PACK_EPIC': {\r\n name: '2nd Level Pack, Epic',\r\n schema: 'level1.packs',\r\n img: 'QmdEpBdMCMaMSm91cHVhU4nreqKFhbNvptf4Z4GakbE1Jf',\r\n description: 'Weapons: 3x Savage (C), 2x Tremor (R), 1x Vortex (Epic). Characters: 1x Ivan (C), 1x Minta (Epic)',\r\n collection: symbolPack,\r\n },\r\n // 3rd level packs\r\n 'LEV_2_PACK_COMMON': {\r\n name: '3rd Level Pack, Common',\r\n schema: 'level2.packs',\r\n img: 'QmapoFnkw6FTvWrmMu82GWhyV4Jbze5ZjaYmQgWeXRkhN8',\r\n description: 'Weapons: 1x Muran (C), 1x Theta (R), 1x Venga (Epic). Characters: 1x Lexi (C), 1x Evelyn (Rare).',\r\n collection: symbolPack,\r\n },\r\n 'LEV_2_PACK_RARE': {\r\n name: '3rd Level Pack, Rare',\r\n schema: 'level2.packs',\r\n img: 'QmaLBSEM2T8ST3Jmz6WDA17xNYyznT2Rwp1jgX2ER9Adsd',\r\n description: 'Weapons: 3x Muran (C), 2x Theta (R), 1x Venga (Epic). Characters: 2x Lexi (C), 1x Evelyn (Rare).',\r\n collection: symbolPack,\r\n },\r\n\r\n // ## game.items\r\n 'FORCE_FIELD': {\r\n name: 'Force Field, level-1',\r\n schema: 'game.items',\r\n img: 'QmYd5hyPp1Y18QV3XTSHQcreLaivWbRtYSrLK1ZRuLyu48',\r\n description: '',\r\n collection: symbolNft,\r\n },\r\n 'FORCE_FIELD_L2': {\r\n name: 'Force Field, level-2',\r\n schema: 'game.items',\r\n img: 'QmdBDMpmCNQ4hsh6HtGJM5hJFLqbfMiaSvK5yarjNNcr9t',\r\n description: 'Allows you to pick up the shields in the 3rd level of the game. Protection against the level boss!',\r\n collection: symbolNft,\r\n },\r\n 'FORCE_FIELD_L0': {\r\n name: 'Force Field, level-0',\r\n schema: 'game.items',\r\n img: 'QmbjytHiGjEdhFGdV6EsAgaEFJhMnTQyBEvHZ6XjPf7Kz4',\r\n description: 'Allows you to pick up the shields in the 1st level of the game',\r\n collection: symbolNft,\r\n },\r\n 'TORCH': {\r\n name: 'Torch Attachment',\r\n schema: 'game.items',\r\n img: 'QmUqiRd4LUqpww15cjMK7Vei9M2zJ552dtLvicqCH6zGRo',\r\n description: 'Allows you to pick up and use the torch in all levels of the game',\r\n collection: symbolNft,\r\n },\r\n\r\n // ## game.ammo\r\n 'MYTHIC_AMMO': {\r\n name: 'Mythic Ammo',\r\n schema: 'game.ammo',\r\n img: 'QmTWRWmwwmw5AFRniZFuq35B4z6b8KigzDNioNc6SVXmkh',\r\n description: 'Max ammo for every match of the game. Max supply: 80',\r\n collection: symbolNft,\r\n },\r\n 'LEGENDARY_AMMO': {\r\n name: 'Legendary Ammo',\r\n schema: 'game.ammo',\r\n img: 'QmXNNgRQZy3cmNkw7iPKiDLeoYFXHiESd9iVRxGGXp1fRg',\r\n description: 'Medium amount of ammo for every match of the game. Max supply: 300',\r\n collection: symbolNft,\r\n },\r\n\r\n // ## game.weapons\r\n // level-0\r\n 'BASE_GUN': {\r\n name: 'Base Gun',\r\n schema: 'game.weapons',\r\n img: 'QmW1vqpqzttK5cVWQTJJxL9tFEBUXsjVPk3gDk7dtnpxxp',\r\n description: 'Default weapon, equipped in all levels. Rewards multiplier: +1%, max counted: 15',\r\n collection: symbolNft,\r\n },\r\n 'LASER_RIFLE': {\r\n name: 'Rifle',\r\n schema: 'game.weapons',\r\n img: 'QmT5KDZCBXm8y1Lx1uExbjM4L1VRBBX8yAQwtZvbpzNTtK',\r\n description: 'Level-0 weapon. Rewards multiplier: +3%, max counted: 2',\r\n collection: symbolNft,\r\n },\r\n 'LASER_SHOTGUN': {\r\n name: 'Shotgun',\r\n schema: 'game.weapons',\r\n img: 'QmNqAmy2wGC48cSHmMv5cisMAsimUuDrRCjsCDNn4k6df5',\r\n description: 'Level-0 weapon. Rewards multiplier: +5%, max counted: 2',\r\n collection: symbolNft,\r\n },\r\n // level-1\r\n 'SAVAGE': {\r\n name: 'Savage',\r\n schema: 'game.weapons',\r\n img: 'QmXE57NYVcJcj9sGFaVZWgewQkqwhEabXZXxQB99pdmfPS',\r\n description: 'Level-1 weapon. Reward multiplier: +1%, max stacking: 3',\r\n collection: symbolNft,\r\n },\r\n 'TREMOR': {\r\n name: 'Tremor',\r\n schema: 'game.weapons',\r\n img: 'QmPaVy1n4xc6jL44ap8i46DXdQ6uzSf3Xiw4Tfqo3bGoa1',\r\n description: 'Level-1 weapon. Reward multiplier: +3%, max stacking: 2',\r\n collection: symbolNft,\r\n },\r\n 'VORTEX': {\r\n name: 'Vortex',\r\n schema: 'game.weapons',\r\n img: 'QmSEKTVGV9iuvq2FYyfJaUd2D8iBPFpUi3ayqpXw28VgTX',\r\n description: 'Level-1 weapon. Reward multiplier: +5%, max stacking: 2',\r\n collection: symbolNft,\r\n },\r\n // level-2\r\n 'MURAN': {\r\n name: 'Muran',\r\n schema: 'game.weapons',\r\n img: 'QmRaYv5qfkKLswjN3st71VCk73EGQFF6bi4HkNzuufHxsP',\r\n description: 'Level-2 weapon. Reward multiplier: +1%, max stacking: 3',\r\n collection: symbolNft,\r\n },\r\n 'THETA': {\r\n name: 'Theta',\r\n schema: 'game.weapons',\r\n img: 'QmXhuDZ19spfGrxMs8QN6aGS8USzR4nvUCaEm7YfFj66dz',\r\n description: 'Level-2 weapon. Reward multiplier: +3%, max stacking: 2',\r\n collection: symbolNft,\r\n },\r\n 'VENGA': {\r\n name: 'Venga',\r\n schema: 'game.weapons',\r\n img: 'QmWcErAYVHEHvLsHqsafJjJQkDqTLxmBirT81kNc2FUfCz',\r\n description: 'Level-2 weapon. Rewards multiplier: +5%, max stacking: 2',\r\n collection: symbolNft,\r\n },\r\n\r\n\r\n // ## game.characters\r\n // level-0\r\n 'VANCE_TYRRELL': {\r\n name: 'Vance Tyrrell',\r\n schema: 'game.characters',\r\n img: 'QmSP2f3hTKFwPAMRc4gbaoaNJgbyk89CcHQ3Ur2LXT1irS',\r\n description: 'Level-0 character. Play time: 5 min, max amount: 4, rarity: common',\r\n collection: symbolNft,\r\n },\r\n 'MASHA_TALASHOVA': {\r\n name: 'Masha Talashova',\r\n schema: 'game.characters',\r\n img: 'QmPTzsPu58et2JFaDem7g8WRDZ6kmv9fTi8Pq1a9ATMzxn',\r\n description: 'Level-0 character. Play time: 15 min, max amount 3, rarity: rare',\r\n collection: symbolNft,\r\n },\r\n // level-1\r\n 'IVAN_BARRICK': {\r\n name: 'Ivan Barrick',\r\n schema: 'game.characters',\r\n img: 'QmaPmPCaHGazT7moZ4qxBW9yFR1WBTDoa442FQJcpLoa4i',\r\n description: 'Level-1 character. Play time: 5 min, max amount: 4, rarity: common',\r\n collection: symbolNft,\r\n },\r\n 'MINTA_HANI': {\r\n name: 'Minta H\\'ani',\r\n schema: 'game.characters',\r\n img: 'Qmczcb1cWxjoXPahA4SVwyz8h6QywXaYFDRbHSTQ67Vq22',\r\n description: 'Level-1 character. Play time: 25 min, max amount 2, rarity: epic',\r\n collection: symbolNft,\r\n },\r\n // level-2\r\n 'LEXI_CAYNE': {\r\n name: 'Lexi Cayne',\r\n schema: 'game.characters',\r\n img: 'QmSh3WHat4sapAERxrsjUGKXrJU6ws8EyTPQmV9SLWELrJ',\r\n description: 'Level-2 character. Play time: 5 min, max amount: 4, rarity: common',\r\n collection: symbolNft,\r\n },\r\n 'EVELYN_MOORE': {\r\n name: 'Evelyn Moore',\r\n schema: 'game.characters',\r\n img: 'QmNX6nkycR6HugchygSokG7tcSuUc4a4HJL87XZkkRSdwf',\r\n description: 'Level-2 character. Play time: 15 min, max amount 3, rarity: rare',\r\n collection: symbolNft,\r\n },\r\n\r\n // ## weapon.skins\r\n 'ELEKTRA_L2_SKIN': {\r\n name: 'Skin for Elektra',\r\n schema: 'weapon.skins',\r\n img: 'QmUdxDPqnMdQWzY9BBSfA9kogsMJowseYao3ay2LwfK8js',\r\n description: 'Game Level: 2. Event: Halloween 2022. Limited edition!',\r\n collection: symbolNft,\r\n },\r\n 'JUSTICE_L2_SKIN': {\r\n name: 'Skin for Justice',\r\n schema: 'weapon.skins',\r\n img: 'Qma2GVagcgSBGCGFgS48p8QcjF3eXzKopfBwiMUPYDuuJD',\r\n description: 'Game Level: 2. Event: Halloween 2022. Limited edition!',\r\n collection: symbolNft,\r\n },\r\n 'UTOPIA_L2_SKIN': {\r\n name: 'Skin for Utopia',\r\n schema: 'weapon.skins',\r\n img: 'QmTgWY5Lzr12pAK5X5fMZRQYnDESt8SyrpnHZC1VY9iPRR',\r\n description: 'Game Level: 2. Event: Halloween 2022. Limited edition!',\r\n collection: symbolNft,\r\n },\r\n\r\n \r\n // ## CYBERGIRLS\r\n\r\n // kiara\r\n 'KIARA_JANUARY': {\r\n name: 'Kiara - January edition',\r\n schema: 'cs.cybergirl',\r\n img: 'QmQAJEnEgxfEYJGHPzi5UTz9EG2qoYjPVH2ng3UbfHNMLf',\r\n description: 'not very chatty, long replies, loves jokes, likes emojis, lower chance prizes, medium tip size',\r\n collection: symbolNft,\r\n },\r\n 'KIARA_FEBRUARY': {\r\n name: 'Kiara - February edition',\r\n schema: 'cs.cybergirl',\r\n img: 'QmZdbkJboDjcqPNPD1CWC3QX29FiviQ5o79m46eyhfRHyB',\r\n description: 'not very chatty, long replies, loves jokes, likes emojis, lower chance prizes, medium tip size',\r\n collection: symbolNft,\r\n },\r\n 'KIARA_MARCH': {\r\n name: 'Kiara - March edition',\r\n schema: 'cs.cybergirl',\r\n img: 'QmdL7ry14fm5eyk2eVLxybuZ3VS2ff35UcZYqKsuHJ1f4X',\r\n description: 'not very chatty, long replies, loves jokes, likes emojis, lower chance prizes, medium tip size',\r\n collection: symbolNft,\r\n },\r\n 'KIARA_APRIL': {\r\n name: 'Kiara - April edition',\r\n schema: 'cs.cybergirl',\r\n img: 'QmQYPkCEcU3WracmkS9YNLLKytpF4Yid1WadGHFZz8soQu',\r\n description: 'not very chatty, long replies, loves jokes, likes emojis, lower chance prizes, medium tip size',\r\n collection: symbolNft,\r\n },\r\n 'KIARA_MAY': {\r\n name: 'Kiara - May edition',\r\n schema: 'cs.cybergirl',\r\n img: 'QmRBUhbS9pFQRcZmDsMmGjjxz1HFC9VhR86a3u95yWPcda',\r\n description: 'not very chatty, long replies, loves jokes, likes emojis, lower chance prizes, medium tip size',\r\n collection: symbolNft,\r\n },\r\n 'KIARA_JUNE': {\r\n name: 'Kiara - June edition',\r\n schema: 'cs.cybergirl',\r\n img: 'QmboTNWD1LSyF95NbPei1odqRotwBNQyUcmzhYmAgrHgh3',\r\n description: 'not very chatty, long replies, loves jokes, likes emojis, lower chance prizes, medium tip size',\r\n collection: symbolNft,\r\n },\r\n 'KIARA_JULY': {\r\n name: 'Kiara - July edition',\r\n schema: 'cs.cybergirl',\r\n img: 'QmaVVcVzSoTjSuPegoPLzkKMzyUJtyVu8Cj3AeUTfLxFhw',\r\n description: 'not very chatty, long replies, loves jokes, likes emojis, lower chance prizes, medium tip size',\r\n collection: symbolNft,\r\n },\r\n 'KIARA_AUGUST': {\r\n name: 'Kiara - August edition',\r\n schema: 'cs.cybergirl',\r\n img: 'QmYMXKTkZmYrbKYggBMm2ctF44QVRxQ2hCf7mBA37JZpF7',\r\n description: 'not very chatty, long replies, loves jokes, likes emojis, lower chance prizes, medium tip size',\r\n collection: symbolNft,\r\n },\r\n 'KIARA_SEPTEMBER': {\r\n name: 'Kiara - September edition',\r\n schema: 'cs.cybergirl',\r\n img: 'QmSwHeBghGidbxURdDPU4DymUTWiuJPECeatsynYsQuVCa',\r\n description: 'not very chatty, long replies, loves jokes, likes emojis, lower chance prizes, medium tip size',\r\n collection: symbolNft,\r\n },\r\n 'KIARA_OCTOBER': {\r\n name: 'Kiara - October edition',\r\n schema: 'cs.cybergirl',\r\n img: 'Qmbs6ExLyGNSY4WEhor9ebEm5hx9Xf1Bcbk4qPagCVrByD',\r\n description: 'not very chatty, long replies, loves jokes, likes emojis, lower chance prizes, medium tip size',\r\n collection: symbolNft,\r\n },\r\n 'KIARA_NOVEMBER': {\r\n name: 'Kiara - November edition',\r\n schema: 'cs.cybergirl',\r\n img: 'QmU5KEryYD8sHjAbk4AReSrqLHLrVJV19wdK1sRVCNQ4ms',\r\n description: 'not very chatty, long replies, loves jokes, likes emojis, lower chance prizes, medium tip size',\r\n collection: symbolNft,\r\n },\r\n 'KIARA_DECEMBER': {\r\n name: 'Kiara - December edition',\r\n schema: 'cs.cybergirl',\r\n img: 'QmSCSNVLEUzmAtR2ZJCvD5KUNmo1piFSKNJZxQFvpwQxED',\r\n description: 'not very chatty, long replies, loves jokes, likes emojis, lower chance prizes, medium tip size',\r\n collection: symbolNft,\r\n },\r\n // karina\r\n 'KARINA_JANUARY': {\r\n name: 'Karina - January edition',\r\n schema: 'cs.cybergirl',\r\n img: 'QmSnLnetwCWpWa7knah5PWgf3XvxWJqdyxE2rgWDqGFGUd',\r\n description: 'chatty, short replies, funny, casual, loves emojis, medium chance prizes, low tip size',\r\n collection: symbolNft,\r\n },\r\n 'KARINA_FEBRUARY': {\r\n name: 'Karina - February edition',\r\n schema: 'cs.cybergirl',\r\n img: 'QmdrefLvSVfbG9BkXeB278j9SmV56dLnmt4cY7zEfjsgUA',\r\n description: 'chatty, short replies, funny, casual, loves emojis, medium chance prizes, low tip size',\r\n collection: symbolNft,\r\n },\r\n 'KARINA_MARCH': {\r\n name: 'Karina - March edition',\r\n schema: 'cs.cybergirl',\r\n img: 'QmPFMEhcAM7T7BH5Lc3SoGniWcPyEYoSQoeTtqtTs4UjNT',\r\n description: 'chatty, short replies, funny, casual, loves emojis, medium chance prizes, low tip size',\r\n collection: symbolNft,\r\n },\r\n 'KARINA_APRIL': {\r\n name: 'Karina - April edition',\r\n schema: 'cs.cybergirl',\r\n img: 'QmQeoHTX5gHHuqVHBLYFCPA2XwoxB59ETZ1KsFQmdDS7gp',\r\n description: 'chatty, short replies, funny, casual, loves emojis, medium chance prizes, low tip size',\r\n collection: symbolNft,\r\n },\r\n 'KARINA_MAY': {\r\n name: 'Karina - May edition',\r\n schema: 'cs.cybergirl',\r\n img: 'QmZJxmeLR665cfY55M9CuCkMm3eNG6mfQiMTNNYF87vUuT',\r\n description: 'chatty, short replies, funny, casual, loves emojis, medium chance prizes, low tip size',\r\n collection: symbolNft,\r\n },\r\n 'KARINA_JUNE': {\r\n name: 'Karina - June edition',\r\n schema: 'cs.cybergirl',\r\n img: 'QmRLwcL4SNSi871yn76CTEVjeJCX8zNFquYm2FyEDDQbm3',\r\n description: 'chatty, short replies, funny, casual, loves emojis, medium chance prizes, low tip size',\r\n collection: symbolNft,\r\n },\r\n 'KARINA_JULY': {\r\n name: 'Karina - July edition',\r\n schema: 'cs.cybergirl',\r\n img: 'Qmc3UiMASRpszFQu4fJqie68EVdaGV3KLia63zG8MifM9H',\r\n description: 'chatty, short replies, funny, casual, loves emojis, medium chance prizes, low tip size',\r\n collection: symbolNft,\r\n },\r\n 'KARINA_AUGUST': {\r\n name: 'Karina - August edition',\r\n schema: 'cs.cybergirl',\r\n img: 'QmPvujWAcSymnnvXvZk1mt2YKLkfEh556PfFPzWcY5kwDG',\r\n description: 'chatty, short replies, funny, casual, loves emojis, medium chance prizes, low tip size',\r\n collection: symbolNft,\r\n },\r\n 'KARINA_SEPTEMBER': {\r\n name: 'Karina - September edition',\r\n schema: 'cs.cybergirl',\r\n img: 'QmWps6P3QYLyow5dLHeksYZCcFJUVvZBQivcz3pEuzAZ3e',\r\n description: 'chatty, short replies, funny, casual, loves emojis, medium chance prizes, low tip size',\r\n collection: symbolNft,\r\n },\r\n 'KARINA_OCTOBER': {\r\n name: 'Karina - October edition',\r\n schema: 'cs.cybergirl',\r\n img: 'QmTHUTZa4xKPTobJ9keu95bSfEqY2MSwGtZWd2vezMvxsJ',\r\n description: 'chatty, short replies, funny, casual, loves emojis, medium chance prizes, low tip size',\r\n collection: symbolNft,\r\n },\r\n 'KARINA_NOVEMBER': {\r\n name: 'Karina - November edition',\r\n schema: 'cs.cybergirl',\r\n img: 'QmTZmAaJNwXuYAQcGWh7ivJ2WS7V72JyHhhzJ9veMTG3co',\r\n description: 'chatty, short replies, funny, casual, loves emojis, medium chance prizes, low tip size',\r\n collection: symbolNft,\r\n },\r\n 'KARINA_DECEMBER': {\r\n name: 'Karina - December edition',\r\n schema: 'cs.cybergirl',\r\n img: 'QmRxENDChRQbeLNn5fomBvcceDXQ6YbDcbmPXVXXrEeQWX',\r\n description: 'chatty, short replies, funny, casual, loves emojis, medium chance prizes, low tip size',\r\n collection: symbolNft,\r\n },\r\n // marte\r\n 'MARTE_JANUARY': {\r\n name: 'Marte - January edition',\r\n schema: 'cs.cybergirl',\r\n img: 'QmQd5xnpgLC1qd8scUybM6tSHCV7U79kPndE3SjVwmLMvJ',\r\n description: 'very chatty, medium replies, wise, friendly, rare use emojis, high chance prizes, high tip size',\r\n collection: symbolNft,\r\n },\r\n 'MARTE_FEBRUARY': {\r\n name: 'Marte - February edition',\r\n schema: 'cs.cybergirl',\r\n img: 'QmUXefuui33qEWC2eBMMdx53j4aw2jnmmkNCnP5n6MZWwv',\r\n description: 'very chatty, medium replies, wise, friendly, rare use emojis, high chance prizes, high tip size',\r\n collection: symbolNft,\r\n },\r\n 'MARTE_MARCH': {\r\n name: 'Marte - March edition',\r\n schema: 'cs.cybergirl',\r\n img: 'QmctUfzp6HjsJSwCGAFig7LBPfBorUPVmGB5eU73mLdmU6',\r\n description: 'very chatty, medium replies, wise, friendly, rare use emojis, high chance prizes, high tip size',\r\n collection: symbolNft,\r\n },\r\n 'MARTE_APRIL': {\r\n name: 'Marte - April edition',\r\n schema: 'cs.cybergirl',\r\n img: 'QmTuZFZ25aoMCaMMhA1rfyfoT9zvk3P1r3nG66LDAEusTf',\r\n description: 'very chatty, medium replies, wise, friendly, rare use emojis, high chance prizes, high tip size',\r\n collection: symbolNft,\r\n },\r\n 'MARTE_MAY': {\r\n name: 'Marte - May edition',\r\n schema: 'cs.cybergirl',\r\n img: 'QmTLFEFLvjKiecyBdjoxrFypHnWKLWzuBDiwsCnCchCxd5',\r\n description: 'very chatty, medium replies, wise, friendly, rare use emojis, high chance prizes, high tip size',\r\n collection: symbolNft,\r\n },\r\n 'MARTE_JUNE': {\r\n name: 'Marte - June edition',\r\n schema: 'cs.cybergirl',\r\n img: 'QmQMFuQzsQBsRBtoe1qUH4PoKbVQpPyuV8pvVQcHWQWyqM',\r\n description: 'very chatty, medium replies, wise, friendly, rare use emojis, high chance prizes, high tip size',\r\n collection: symbolNft,\r\n },\r\n 'MARTE_JULY': {\r\n name: 'Marte - July edition',\r\n schema: 'cs.cybergirl',\r\n img: 'QmWMEXdTNgvJy5zofQfVrPMwZ1gSc6dfuJP4jVND9F9GQU',\r\n description: 'very chatty, medium replies, wise, friendly, rare use emojis, high chance prizes, high tip size',\r\n collection: symbolNft,\r\n },\r\n 'MARTE_AUGUST': {\r\n name: 'Marte - August edition',\r\n schema: 'cs.cybergirl',\r\n img: 'QmNo5UixVaxx2Y1JGLDhMvmdTkLtJDNxJ6UJcMUtWLej8D',\r\n description: 'very chatty, medium replies, wise, friendly, rare use emojis, high chance prizes, high tip size',\r\n collection: symbolNft,\r\n },\r\n 'MARTE_SEPTEMBER': {\r\n name: 'Marte - September edition',\r\n schema: 'cs.cybergirl',\r\n img: 'QmQHdJBALkzwr7uVpjKNT9SCnHJz5htsSf46qMQPhXaMf5',\r\n description: 'very chatty, medium replies, wise, friendly, rare use emojis, high chance prizes, high tip size',\r\n collection: symbolNft,\r\n },\r\n 'MARTE_OCTOBER': {\r\n name: 'Marte - October edition',\r\n schema: 'cs.cybergirl',\r\n img: 'Qme8ibc8dPQ77UqNCBbJPRecZ9WYpL2WkSQmfmS9L6WaZp',\r\n description: 'very chatty, medium replies, wise, friendly, rare use emojis, high chance prizes, high tip size',\r\n collection: symbolNft,\r\n },\r\n 'MARTE_NOVEMBER': {\r\n name: 'Marte - November edition',\r\n schema: 'cs.cybergirl',\r\n img: 'QmeeZqhCUyCgNdmMX15cRHStmgnBu2ut3RpemJoSiP7PNK',\r\n description: 'very chatty, medium replies, wise, friendly, rare use emojis, high chance prizes, high tip size',\r\n collection: symbolNft,\r\n },\r\n 'MARTE_DECEMBER': {\r\n name: 'Marte - December edition',\r\n schema: 'cs.cybergirl',\r\n img: 'QmTn44LY6AyJZHQ4MJrAnEBQCecScaHdAaYP22JTUxkA2V',\r\n description: 'very chatty, medium replies, wise, friendly, rare use emojis, high chance prizes, high tip size',\r\n collection: symbolNft,\r\n },\r\n \r\n // ## early.access\r\n 'PVP_ALPHA_PASS': {\r\n name: 'PVP Alpha Pass',\r\n schema: 'early.access',\r\n img: 'QmTuRGriPK69WpZ11bW7avoBM2uGchXbqMycMQYdVzjktL',\r\n description: 'This asset grants early access to the alpha version of our Multiplayer Shooter game',\r\n collection: symbolNft,\r\n },\r\n};\r\nexports.NFT_INVENTORY = NFT_INVENTORY;\r\n"],"sourceRoot":""}