{"version":3,"sources":["webpack:///./libs/handlerNFT.ts","webpack:///./libs/nftABI.ts","webpack:///./libs/web3.handlers.ts","webpack:///./store/wallet/state.ts","webpack:///./store/wallet/getters.ts","webpack:///./store/wallet/mutations.ts","webpack:///./store/wallet/actions.ts","webpack:///./store/app/state.ts","webpack:///./store/app/getters.ts","webpack:///./store/app/mutations.ts","webpack:///./store/app/actions.ts","webpack:///./plugins/axios.ts","webpack:///./plugins/web3.ts","webpack:///./plugins/persistedState.client.ts","webpack:///./plugins/functionsPlugin.ts","webpack:///./libs/config.ts","webpack:///./plugins/confirm/events.js","webpack:///./middleware/initWallet.ts","webpack:///./store/wallet/index.ts","webpack:///./store/app/index.ts","webpack:///./libs/const.ts","webpack:///./libs/abi.ts","webpack:///./libs/web3.stake.ts","webpack:///./store/walletConnect.ts","webpack:///./libs/helper.ts"],"names":["HandlerDataNFT","strategies","name","strategy","this","tokenURI","parseData","apply","console","error","IpfsStrategy","urlReq","split","fetch","then","res","json","metaData","image","startsWith","HttpsStrategy","Base64Strategy","log","handlerNFT","use","openseaABI","inputs","internalType","type","stateMutability","anonymous","indexed","outputs","Web3Handlers","configs","contractAddr","init","web3Provider","Web3","providers","HttpProvider","rpcUrl","web3Instance","eth","Contract","walletAddress","methods","balanceOf","call","balance","index","tokenOfOwnerByIndex","tokenId","uri","initialState","getters","mutations","actions","scanNFTByOwner","address","commit","arrNFT","Promise","all","Object","entries","metaConfigs","map","contract","network","getConfigChain","Number","web3handlers","addr","mode","data","id","push","state","isAppLoading","languages","currentLanguage","isOpenModalWallet","getCurentLanguage","getLanguages","setAppLoading","isLoading","setLanguage","locale","setOpenModalWallet","appLoading","payload","status","switchLanguage","$i18n","setLocale","showModalWallet","hideModalWallet","inject","$axios","app","redirect","onRequest","config","token","store","setToken","onError","_app","price","exRate","priceF","utils","fromWei","exPrice","parseFloat","Math","round","toLocaleString","minimumFractionDigits","maximumFractionDigits","isFloat","length","value","parseInt","numberV","fRw","String","padStart","ls","SecureLS","isCompression","req","createPersistedState","key","paths","storage","getItem","get","setItem","set","removeItem","remove","funcHelpers","show","hide","start","finish","params","hasOwnProperty","callback","callbackType","Error","events","$emit","supportChains","require","apiEndpoint","toString","contractsLists","BIF_TOKEN_ADDRESS","BIF_RATIO_TOKEN_ADDRESS","NFT_PLANT_MARKET_ADDRESS","NFT_POT_MARKET_ADDRESS","NFT_PLANT_ADDRESS","NFT_POT_ADDRESS","smcMode","configApi","testnet","reduce","acc","cur","chainId","process","login","refreshToken","register","active","resendActive","info","changePassword","changeFullname","resetPassword","uploadAvatar","walletNonce","walletSign","usdtRate","getDpetNFT_old","getDpetNFT","Vue","walletConnect","isLogin","router","dispatch","showNotification","namespaced","CATEGORY_PLANT","CATEGORY_POT","MAX_GAS_FEE","SMC_STAKE_DPET","tokenAbi","payable","constant","plantAbi","marketAbi","stakeABI","Web3Stake","timeClaimRewards","timeUnstake","rewards","isClaimed","stakeInfo","timeStake","SMC_DPET_BSC","stakeHandlers","account","nfts","totalv1","totalv2","nextCursor","getProvider","Web3Modal","cacheProvider","providerOptions","walletconnect","package","WalletConnectProvider","options","rpc","getRPCs","theme","isConnected","getWalletAddress","getChainId","getTimeClaimRewards","getTimeUnstake","getTimeStake","getTotalRewards","getStakeInfo","getListNFT","setAccount","toLocaleLowerCase","setChainId","$nuxt","$toast","resetState","setTimeClaimRewards","setTimeUnstake","setTimeStake","setStakeInfo","setIsClaimed","setRewards","setNftProfile","ids","Set","d","merged","filter","has","setCursorNext","connect","clearCachedProvider","provider","setCachedProvider","web3","window","gaiaweb3","getAccounts","accounts","on","checkWalletChainBSC","getContractInstance","getExchangeTokenMarket","category","getExchangeToken","buyNfts","tid","exchangeAddress","bid","send","from","gas","buyNft","cancelNfts","cancelAuction","sellNfts","amount","createSaleAuction","getTokenApprove","allowance","approve","getDpetNFTs","resolve","reject","cursor","success","fetchPET","$post","chain","mini","item","version","catch","disconnect","getSignature","dataString","signature","personal","sign","fromUtf8","metamaskSwitchChain","ethereum","request","method","hex","isMetaMask","scanNFTOwner","obj","approveToken","isV1","contractNFT","stake","message","contractInstance","staked","unStake","unStakeToken","unStaked","unStakeV1","unStakeAlV1","unStakeV2","unStakeAlV2","claimRewards","claim","getRewards","w3FromWei","w3toWei","toWei","shortenWallet","substring","formatTime","unix","Date","shortNumber","withAbbr","decimals","COUNT_ABBR","i","floor","result","pow","isMobile","test","navigator","userAgent","copyToClipboard","subject","content","clipboard","writeText","isSuccess","formatNumber","floatNumber","weiToFixed","x","e","abs","Array","join","padLeft","number","character","find","isChainSupport","some"],"mappings":"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c,UACdzB,KAAM,SACN0B,KAAM,WAER,CACED,aAAc,UACdzB,KAAM,QACN0B,KAAM,WAER,CACED,aAAc,SACdzB,KAAM,SACN0B,KAAM,UAER,CACED,aAAc,SACdzB,KAAM,YACN0B,KAAM,UAER,CACED,aAAc,SACdzB,KAAM,OACN0B,KAAM,UAER,CACED,aAAc,QACdzB,KAAM,YACN0B,KAAM,UAGV1B,KAAM,YACN8B,QAAS,GACTH,gBAAiB,aACjBD,KAAM,YAER,CACEF,OAAQ,CACN,CACEC,aAAc,UACdzB,KAAM,QACN0B,KAAM,WAER,CACED,aAAc,UACdzB,KAAM,SACN0B,KAAM,WAER,CACED,aAAc,UACdzB,KAAM,QACN0B,KAAM,WAER,CACED,aAAc,SACdzB,KAAM,SACN0B,KAAM,UAER,CACED,aAAc,SACdzB,KAAM,YACN0B,KAAM,UAER,CACED,aAAc,SACdzB,KAAM,OACN0B,KAAM,UAER,CACED,aAAc,SACdzB,KAAM,MACN0B,KAAM,UAER,CACED,aAAc,QACdzB,KAAM,YACN0B,KAAM,UAGV1B,KAAM,gBACN8B,QAAS,GACTH,gBAAiB,aACjBD,KAAM,YAER,CACEF,OAAQ,CACN,CACEC,aAAc,UACdzB,KAAM,SACN0B,KAAM,WAER,CACED,aAAc,UACdzB,KAAM,WACN0B,KAAM,YAGV1B,KAAM,sBACN8B,QAAS,GACTH,gBAAiB,aACjBD,KAAM,YAER,CACEF,OAAQ,CACN,CACEC,aAAc,UACdzB,KAAM,SACN0B,KAAM,WAER,CACED,aAAc,UACdzB,KAAM,WACN0B,KAAM,WAER,CACED,aAAc,UACdzB,KAAM,aACN0B,KAAM,WAER,CACED,aAAc,UACdzB,KAAM,WACN0B,KAAM,YAGV1B,KAAM,sBACN8B,QAAS,GACTH,gBAAiB,aACjBD,KAAM,YAER,CACEF,OAAQ,CACN,CACEC,aAAc,UACdzB,KAAM,UACN0B,KAAM,WAER,CACED,aAAc,UACdzB,KAAM,gBACN0B,KAAM,WAER,CACED,aAAc,UACdzB,KAAM,cACN0B,KAAM,WAER,CACED,aAAc,UACdzB,KAAM,WA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","file":"1c90ac0.js","sourcesContent":["import axios from '@nuxtjs/axios';\ninterface Strategy {\n parseData(tokenURI: string): any;\n}\n\nclass HandlerDataNFT {\n strategies: Record = {};\n use(name: string, strategy: Strategy) {\n this.strategies[name] = strategy;\n }\n parseData(name: string, tokenURI: string) {\n if (!this.strategies[name]) {\n console.error('Strategy policy has not been set!');\n return false;\n }\n return this.strategies[name].parseData.apply(null, [tokenURI]);\n }\n}\n\nclass IpfsStrategy implements Strategy {\n async parseData(tokenURI: string) {\n const urlReq = tokenURI.split('ipfs://')[1];\n const metaData = await fetch(`https://ipfs.io/ipfs/${urlReq}`).then(res => res.json());\n if (metaData.image.startsWith('ipfs://')) {\n metaData.image = `https://ipfs.io/ipfs/${metaData.image.split('ipfs://')[1]}`;\n }\n return metaData;\n }\n}\n\nclass HttpsStrategy implements Strategy {\n async parseData(tokenURI: string) {\n const metaData = await fetch(tokenURI).then(res => res.json());\n if (metaData.image.startsWith('ipfs://')) {\n metaData.image = `https://ipfs.io/ipfs/${metaData.image.split('ipfs://')[1]}`;\n }\n return metaData;\n }\n}\n\nclass Base64Strategy implements Strategy {\n parseData(tokenURI: string) {\n console.log('handler Base64Strategy');\n }\n}\n\nconst handlerNFT = new HandlerDataNFT();\nhandlerNFT.use('ipfs', new IpfsStrategy());\nhandlerNFT.use('https', new HttpsStrategy());\nhandlerNFT.use('base64', new Base64Strategy());\n\nexport default handlerNFT;\n","export const openseaABI = [\n {\n inputs: [\n { internalType: 'string', name: 'name', type: 'string' },\n { internalType: 'string', name: 'symbol', type: 'string' },\n { internalType: 'address', name: 'baycAddress', type: 'address' },\n { internalType: 'address', name: 'baccAddress', type: 'address' },\n ],\n stateMutability: 'nonpayable',\n type: 'constructor',\n },\n {\n anonymous: false,\n inputs: [\n {\n indexed: true,\n internalType: 'address',\n name: 'owner',\n type: 'address',\n },\n {\n indexed: true,\n internalType: 'address',\n name: 'approved',\n type: 'address',\n },\n {\n indexed: true,\n internalType: 'uint256',\n name: 'tokenId',\n type: 'uint256',\n },\n ],\n name: 'Approval',\n type: 'event',\n },\n {\n anonymous: false,\n inputs: [\n {\n indexed: true,\n internalType: 'address',\n name: 'owner',\n type: 'address',\n },\n {\n indexed: true,\n internalType: 'address',\n name: 'operator',\n type: 'address',\n },\n { indexed: false, internalType: 'bool', name: 'approved', type: 'bool' },\n ],\n name: 'ApprovalForAll',\n type: 'event',\n },\n {\n anonymous: false,\n inputs: [\n {\n indexed: true,\n internalType: 'uint256',\n name: '_currentPrice',\n type: 'uint256',\n },\n {\n indexed: true,\n internalType: 'uint256',\n name: '_timeElapsed',\n type: 'uint256',\n },\n ],\n name: 'MutantPublicSalePaused',\n type: 'event',\n },\n {\n anonymous: false,\n inputs: [\n {\n indexed: true,\n internalType: 'uint256',\n name: '_saleDuration',\n type: 'uint256',\n },\n {\n indexed: true,\n internalType: 'uint256',\n name: '_saleStartTime',\n type: 'uint256',\n },\n ],\n name: 'MutantPublicSaleStart',\n type: 'event',\n },\n {\n anonymous: false,\n inputs: [\n {\n indexed: true,\n internalType: 'address',\n name: 'previousOwner',\n type: 'address',\n },\n {\n indexed: true,\n internalType: 'address',\n name: 'newOwner',\n type: 'address',\n },\n ],\n name: 'OwnershipTransferred',\n type: 'event',\n },\n {\n anonymous: false,\n inputs: [\n {\n indexed: true,\n internalType: 'uint256',\n name: '_mintedMutantsStartingIndex',\n type: 'uint256',\n },\n {\n indexed: true,\n internalType: 'uint256',\n name: '_megaMutantsStartingIndex',\n type: 'uint256',\n },\n ],\n name: 'StartingIndicesSet',\n type: 'event',\n },\n {\n anonymous: false,\n inputs: [\n { indexed: true, internalType: 'address', name: 'from', type: 'address' },\n { indexed: true, internalType: 'address', name: 'to', type: 'address' },\n {\n indexed: true,\n internalType: 'uint256',\n name: 'tokenId',\n type: 'uint256',\n },\n ],\n name: 'Transfer',\n type: 'event',\n },\n {\n inputs: [],\n name: 'MAYC_PROVENANCE',\n outputs: [{ internalType: 'string', name: '', type: 'string' }],\n stateMutability: 'view',\n type: 'function',\n },\n {\n inputs: [],\n name: 'NUM_MEGA_MUTANTS',\n outputs: [{ internalType: 'uint256', name: '', type: 'uint256' }],\n stateMutability: 'view',\n type: 'function',\n },\n {\n inputs: [],\n name: 'PS_MAX_MUTANTS',\n outputs: [{ internalType: 'uint256', name: '', type: 'uint256' }],\n stateMutability: 'view',\n type: 'function',\n },\n {\n inputs: [],\n name: 'PS_MAX_MUTANT_PURCHASE',\n outputs: [{ internalType: 'uint256', name: '', type: 'uint256' }],\n stateMutability: 'view',\n type: 'function',\n },\n {\n inputs: [],\n name: 'PS_MUTANT_ENDING_PRICE',\n outputs: [{ internalType: 'uint256', name: '', type: 'uint256' }],\n stateMutability: 'view',\n type: 'function',\n },\n {\n inputs: [],\n name: 'SERUM_MUTATION_OFFSET',\n outputs: [{ internalType: 'uint256', name: '', type: 'uint256' }],\n stateMutability: 'view',\n type: 'function',\n },\n {\n inputs: [\n { internalType: 'address', name: 'to', type: 'address' },\n { internalType: 'uint256', name: 'tokenId', type: 'uint256' },\n ],\n name: 'approve',\n outputs: [],\n stateMutability: 'nonpayable',\n type: 'function',\n },\n {\n inputs: [{ internalType: 'address', name: 'owner', type: 'address' }],\n name: 'balanceOf',\n outputs: [{ internalType: 'uint256', name: '', type: 'uint256' }],\n stateMutability: 'view',\n type: 'function',\n },\n {\n inputs: [],\n name: 'collectionStartingIndexBlock',\n outputs: [{ internalType: 'uint256', name: '', type: 'uint256' }],\n stateMutability: 'view',\n type: 'function',\n },\n {\n inputs: [{ internalType: 'uint256', name: 'tokenId', type: 'uint256' }],\n name: 'getApproved',\n outputs: [{ internalType: 'address', name: '', type: 'address' }],\n stateMutability: 'view',\n type: 'function',\n },\n {\n inputs: [],\n name: 'getMintPrice',\n outputs: [{ internalType: 'uint256', name: '', type: 'uint256' }],\n stateMutability: 'view',\n type: 'function',\n },\n {\n inputs: [\n { internalType: 'uint256', name: 'apeId', type: 'uint256' },\n { internalType: 'uint8', name: 'serumTypeId', type: 'uint8' },\n ],\n name: 'getMutantIdForApeAndSerumCombination',\n outputs: [{ internalType: 'uint256', name: '', type: 'uint256' }],\n stateMutability: 'view',\n type: 'function',\n },\n {\n inputs: [],\n name: 'getRemainingSaleTime',\n outputs: [{ internalType: 'uint256', name: '', type: 'uint256' }],\n stateMutability: 'view',\n type: 'function',\n },\n {\n inputs: [\n { internalType: 'uint8', name: 'serumType', type: 'uint8' },\n { internalType: 'uint256', name: 'apeId', type: 'uint256' },\n ],\n name: 'hasApeBeenMutatedWithType',\n outputs: [{ internalType: 'bool', name: '', type: 'bool' }],\n stateMutability: 'view',\n type: 'function',\n },\n {\n inputs: [\n { internalType: 'address', name: 'owner', type: 'address' },\n { internalType: 'address', name: 'operator', type: 'address' },\n ],\n name: 'isApprovedForAll',\n outputs: [{ internalType: 'bool', name: '', type: 'bool' }],\n stateMutability: 'view',\n type: 'function',\n },\n {\n inputs: [{ internalType: 'uint256', name: 'tokenId', type: 'uint256' }],\n name: 'isMinted',\n outputs: [{ internalType: 'bool', name: '', type: 'bool' }],\n stateMutability: 'view',\n type: 'function',\n },\n {\n inputs: [],\n name: 'megaMutantsStartingIndex',\n outputs: [{ internalType: 'uint256', name: '', type: 'uint256' }],\n stateMutability: 'view',\n type: 'function',\n },\n {\n inputs: [{ internalType: 'uint256', name: 'numMutants', type: 'uint256' }],\n name: 'mintMutants',\n outputs: [],\n stateMutability: 'payable',\n type: 'function',\n },\n {\n inputs: [],\n name: 'mintedMutantsStartingIndex',\n outputs: [{ internalType: 'uint256', name: '', type: 'uint256' }],\n stateMutability: 'view',\n type: 'function',\n },\n {\n inputs: [\n { internalType: 'uint256', name: 'serumTypeId', type: 'uint256' },\n { internalType: 'uint256', name: 'apeId', type: 'uint256' },\n ],\n name: 'mutateApeWithSerum',\n outputs: [],\n stateMutability: 'nonpayable',\n type: 'function',\n },\n {\n inputs: [],\n name: 'name',\n outputs: [{ internalType: 'string', name: '', type: 'string' }],\n stateMutability: 'view',\n type: 'function',\n },\n {\n inputs: [],\n name: 'numMutantsMinted',\n outputs: [{ internalType: 'uint256', name: '', type: 'uint256' }],\n stateMutability: 'view',\n type: 'function',\n },\n {\n inputs: [],\n name: 'owner',\n outputs: [{ internalType: 'address', name: '', type: 'address' }],\n stateMutability: 'view',\n type: 'function',\n },\n {\n inputs: [{ internalType: 'uint256', name: 'tokenId', type: 'uint256' }],\n name: 'ownerOf',\n outputs: [{ internalType: 'address', name: '', type: 'address' }],\n stateMutability: 'view',\n type: 'function',\n },\n {\n inputs: [],\n name: 'pausePublicSale',\n outputs: [],\n stateMutability: 'nonpayable',\n type: 'function',\n },\n {\n inputs: [],\n name: 'publicSaleActive',\n outputs: [{ internalType: 'bool', name: '', type: 'bool' }],\n stateMutability: 'view',\n type: 'function',\n },\n {\n inputs: [],\n name: 'publicSaleDuration',\n outputs: [{ internalType: 'uint256', name: '', type: 'uint256' }],\n stateMutability: 'view',\n type: 'function',\n },\n {\n inputs: [],\n name: 'publicSaleMutantStartingPrice',\n outputs: [{ internalType: 'uint256', name: '', type: 'uint256' }],\n stateMutability: 'view',\n type: 'function',\n },\n {\n inputs: [],\n name: 'publicSaleStartTime',\n outputs: [{ internalType: 'uint256', name: '', type: 'uint256' }],\n stateMutability: 'view',\n type: 'function',\n },\n {\n inputs: [],\n name: 'renounceOwnership',\n outputs: [],\n stateMutability: 'nonpayable',\n type: 'function',\n },\n {\n inputs: [\n { internalType: 'address', name: 'from', type: 'address' },\n { internalType: 'address', name: 'to', type: 'address' },\n { internalType: 'uint256', name: 'tokenId', type: 'uint256' },\n ],\n name: 'safeTransferFrom',\n outputs: [],\n stateMutability: 'nonpayable',\n type: 'function',\n },\n {\n inputs: [\n { internalType: 'address', name: 'from', type: 'address' },\n { internalType: 'address', name: 'to', type: 'address' },\n { internalType: 'uint256', name: 'tokenId', type: 'uint256' },\n { internalType: 'bytes', name: '_data', type: 'bytes' },\n ],\n name: 'safeTransferFrom',\n outputs: [],\n stateMutability: 'nonpayable',\n type: 'function',\n },\n {\n inputs: [],\n name: 'serumMutationActive',\n outputs: [{ internalType: 'bool', name: '', type: 'bool' }],\n stateMutability: 'view',\n type: 'function',\n },\n {\n inputs: [\n { internalType: 'address', name: 'operator', type: 'address' },\n { internalType: 'bool', name: 'approved', type: 'bool' },\n ],\n name: 'setApprovalForAll',\n outputs: [],\n stateMutability: 'nonpayable',\n type: 'function',\n },\n {\n inputs: [{ internalType: 'string', name: 'uri', type: 'string' }],\n name: 'setBaseURI',\n outputs: [],\n stateMutability: 'nonpayable',\n type: 'function',\n },\n {\n inputs: [],\n name: 'setStartingIndices',\n outputs: [],\n stateMutability: 'nonpayable',\n type: 'function',\n },\n {\n inputs: [\n { internalType: 'uint256', name: 'saleDuration', type: 'uint256' },\n { internalType: 'uint256', name: 'saleStartPrice', type: 'uint256' },\n ],\n name: 'startPublicSale',\n outputs: [],\n stateMutability: 'nonpayable',\n type: 'function',\n },\n {\n inputs: [{ internalType: 'bytes4', name: 'interfaceId', type: 'bytes4' }],\n name: 'supportsInterface',\n outputs: [{ internalType: 'bool', name: '', type: 'bool' }],\n stateMutability: 'view',\n type: 'function',\n },\n {\n inputs: [],\n name: 'symbol',\n outputs: [{ internalType: 'string', name: '', type: 'string' }],\n stateMutability: 'view',\n type: 'function',\n },\n {\n inputs: [],\n name: 'togglePublicSaleActive',\n outputs: [],\n stateMutability: 'nonpayable',\n type: 'function',\n },\n {\n inputs: [],\n name: 'toggleSerumMutationActive',\n outputs: [],\n stateMutability: 'nonpayable',\n type: 'function',\n },\n {\n inputs: [{ internalType: 'uint256', name: 'index', type: 'uint256' }],\n name: 'tokenByIndex',\n outputs: [{ internalType: 'uint256', name: '', type: 'uint256' }],\n stateMutability: 'view',\n type: 'function',\n },\n {\n inputs: [\n { internalType: 'address', name: 'owner', type: 'address' },\n { internalType: 'uint256', name: 'index', type: 'uint256' },\n ],\n name: 'tokenOfOwnerByIndex',\n outputs: [{ internalType: 'uint256', name: '', type: 'uint256' }],\n stateMutability: 'view',\n type: 'function',\n },\n {\n inputs: [{ internalType: 'uint256', name: 'tokenId', type: 'uint256' }],\n name: 'tokenURI',\n outputs: [{ internalType: 'string', name: '', type: 'string' }],\n stateMutability: 'view',\n type: 'function',\n },\n {\n inputs: [],\n name: 'totalApesMutated',\n outputs: [{ internalType: 'uint256', name: '', type: 'uint256' }],\n stateMutability: 'view',\n type: 'function',\n },\n {\n inputs: [],\n name: 'totalSupply',\n outputs: [{ internalType: 'uint256', name: '', type: 'uint256' }],\n stateMutability: 'view',\n type: 'function',\n },\n {\n inputs: [\n { internalType: 'address', name: 'from', type: 'address' },\n { internalType: 'address', name: 'to', type: 'address' },\n { internalType: 'uint256', name: 'tokenId', type: 'uint256' },\n ],\n name: 'transferFrom',\n outputs: [],\n stateMutability: 'nonpayable',\n type: 'function',\n },\n {\n inputs: [{ internalType: 'address', name: 'newOwner', type: 'address' }],\n name: 'transferOwnership',\n outputs: [],\n stateMutability: 'nonpayable',\n type: 'function',\n },\n {\n inputs: [],\n name: 'withdraw',\n outputs: [],\n stateMutability: 'nonpayable',\n type: 'function',\n },\n]\n","import Web3 from 'web3';\nimport { openseaABI } from './nftABI';\ninterface IConfig {\n chainId: number;\n chainName: string;\n explorer: string;\n rpcUrl: string;\n scanUrl: string;\n}\n\nclass Web3Handlers {\n configs: IConfig;\n web3Provider: any;\n web3Instance: any;\n contractAddr: any;\n constructor({ configs, contractAddr }: any) {\n this.configs = configs;\n this.contractAddr = contractAddr;\n this.init();\n }\n init() {\n this.web3Provider = new Web3(new Web3.providers.HttpProvider(this.configs.rpcUrl));\n this.web3Instance = new this.web3Provider.eth.Contract(openseaABI, this.contractAddr);\n }\n\n async balanceOf(walletAddress: string) {\n try {\n const balance = await this.web3Instance.methods.balanceOf(walletAddress).call();\n return balance;\n // return await this.web3Instance.callContract(openseaABI, contractAddress, 'balanceOf', [walletAddress]);\n } catch (e) {\n return '0';\n }\n }\n\n async tokenOfOwnerByIndex(walletAddress: string, index: number) {\n try {\n const tokenId = await this.web3Instance.methods.tokenOfOwnerByIndex(walletAddress, index).call();\n return tokenId;\n } catch (e) {\n return null;\n }\n }\n\n async tokenURI(tokenId: any) {\n try {\n const uri = await this.web3Instance.methods.tokenURI(tokenId).call();\n return uri;\n } catch (e) {\n return null;\n }\n }\n}\n\nexport default Web3Handlers;\n","//Interface\nexport interface Wallet {}\n//state\nexport const initialState = (): Wallet => ({});\n\nexport default initialState;\n","import { GetterTree } from 'vuex';\nimport { Wallet } from './state';\n\nconst getters: GetterTree = {};\n\nexport default getters;\n","import { MutationTree } from 'vuex';\nimport { Wallet, initialState } from './state';\nimport { showNotification } from '~/libs/helper';\n\nconst mutations: MutationTree = {};\n\nexport default mutations;\n","import { ActionTree } from 'vuex';\nimport { Wallet } from './state';\nimport { configApi, metaConfigs } from '~/libs/config';\nimport { showNotification, getConfigChain } from '~/libs/helper';\nimport Web3Handlers from '~/libs/web3.handlers';\nimport Web3Stake from '~/libs/web3.stake';\nimport handlerNFT from '~/libs/handlerNFT';\nimport { SMC_STAKE_DPET } from '~/libs/const';\n\nconst actions: ActionTree = {\n async scanNFTByOwner({ commit }, address: string) {\n let arrNFT: any[] = [];\n await Promise.all(\n Object.entries(metaConfigs).map(async ([key, contract]: any) => {\n const network = getConfigChain(Number(contract.network)); // network smart contract\n const web3handlers = new Web3Handlers({\n configs: network,\n contractAddr: contract.addr\n });\n const balanceOf = await web3handlers.balanceOf(address); // get balance NFT account\n if (balanceOf > 0) {\n for (let index = 0; index < balanceOf; index++) {\n const tokenId = await web3handlers.tokenOfOwnerByIndex(address, index); // get ID NFT account\n const tokenURI = await web3handlers.tokenURI(tokenId); // get URI NFT account\n const mode = tokenURI.split('://')[0];\n const data = await handlerNFT.parseData(mode, tokenURI);\n data.contractAddr = contract.addr;\n data.id = tokenId;\n if (!data?.name) data.name = `${contract.name} #${tokenId}`;\n if (data) arrNFT.push(data);\n }\n }\n })\n );\n commit('setNftProfile', arrNFT);\n return arrNFT;\n }\n};\n\nexport default actions;\n","export interface ButtonState {\n title: string;\n action: any; //0: close, 2: Wallet Info, string: route\n}\nexport interface IAppState {\n app?: any;\n isAppLoading: boolean;\n languages: any;\n currentLanguage: string;\n isOpenModalWallet: boolean;\n}\n\nconst state = (): IAppState => ({\n isAppLoading: false,\n languages: ['en', 'vi'],\n currentLanguage: 'en',\n isOpenModalWallet: false,\n});\n\nexport default state;\n","import { GetterTree } from 'vuex'\n\nconst getters: GetterTree = {\n isAppLoading(state): boolean {\n return state.isAppLoading\n },\n getCurentLanguage(state){\n return state.currentLanguage;\n },\n getLanguages(state){\n return state.languages\n },\n isOpenModalWallet(state):boolean{\n return state.isOpenModalWallet\n }\n}\n\nexport default getters\n","import { MutationTree } from 'vuex';\nimport { ButtonState, IAppState } from './state';\n\nconst mutations: MutationTree = {\n setAppLoading(state, isLoading) {\n state.isAppLoading = isLoading;\n },\n setLanguage(state, locale) {\n state.currentLanguage = locale;\n },\n setOpenModalWallet(state, isOpenModalWallet) {\n state.isOpenModalWallet = isOpenModalWallet;\n },\n};\n\nexport default mutations;\n","import { ActionTree } from 'vuex';\nimport { ButtonState, IAppState } from './state';\n\nconst actions: ActionTree = {\n appLoading({ commit }, payload: { status: boolean }) {\n commit('setAppLoading', payload.status);\n },\n switchLanguage({ commit }, payload) {\n commit('setLanguage', payload);\n this.$i18n.setLocale(payload);\n },\n showModalWallet({ commit }) {\n commit('setOpenModalWallet', true);\n },\n hideModalWallet({ commit }) {\n commit('setOpenModalWallet', false);\n },\n};\n\nexport default actions;\n","import { showNotification } from '~/libs/helper';\n\nexport default ({ $axios, redirect, app }: any, inject: any) => {\n $axios.onRequest((config: any) => {\n const token = app.store.getters['auth/getToken'];\n if (token) $axios.setToken(token, 'Bearer'); // $axios.setHeader('Authorization', 'Bearer ' + token)\n }),\n $axios.onError((error: any) => {\n // if (error.response === undefined) {\n // // Display a flash notification\n // showNotification('Network Error: Please refresh and try again.', false)\n // throw error\n // }\n\n // Handle other types of errors (e.g., redirect to login on 401 errors)\n throw error;\n });\n};\n","import Web3 from 'web3'\n\nexport default (_app: any, inject: any) => {\n inject('toUsdt', (price: string | null, exRate: number | 0) => {\n if (!price) return 0\n const priceF = Web3.utils.fromWei(price, 'ether')\n const exPrice = exRate * parseFloat(priceF)\n\n let floatV = Math.round(exPrice * 100) % 100;\n if (floatV)\n return exPrice.toLocaleString('en-US', {minimumFractionDigits:2, maximumFractionDigits:2});\n return Math.round(exPrice).toLocaleString('en-US');\n })\n\n inject('toCyga', (price: string | null) => {\n if (!price) return 0\n const priceF = parseFloat(Web3.utils.fromWei(price, 'ether'))\n\n let floatV = Math.round(priceF * 10000) % 10000;\n if (floatV)\n return priceF.toLocaleString('en-US', {minimumFractionDigits:4, maximumFractionDigits:4});\n return Math.round(priceF).toLocaleString('en-US');\n })\n\n inject('cygaNumber', (price: string | null, isFloat: boolean, locale: string) => {\n if (!price || price.length === 0 )\n return '0';\n\n let value = Web3.utils.fromWei(price, 'ether');\n if (!isFloat)\n return parseInt(value).toLocaleString(locale);\n\n let numberV = parseFloat(value);\n //if (numberV < 100000)\n //numberV += 240;\n let floatV = Math.round(numberV * 10000) % 10000;\n if (floatV)\n return numberV.toLocaleString(locale, {minimumFractionDigits:4, maximumFractionDigits:4});\n return Math.round(numberV).toLocaleString(locale);\n })\n\n inject('cygaFloat', (price: string | null, locale: string) => {\n if (!price || price.length === 0 )\n return false;\n\n let value = Web3.utils.fromWei(price, 'ether');\n let numberV = parseFloat(value);\n let fRw = Math.round(numberV * 10000) % 10000;\n //if (numberV > 10000)\n //roundfRw += 240;\n if (fRw)\n return '.' + String(fRw).padStart(4, '0');\n else\n return false;\n })\n}\n","import createPersistedState from 'vuex-persistedstate';\nimport SecureLS from 'secure-ls';\nconst ls = new SecureLS({ isCompression: false });\n\nexport default ({ store, req }: any) => {\n createPersistedState({\n key: 'gaia-staking',\n paths: ['app.currentLanguage', 'walletConnect.isLogin'],\n storage: {\n getItem: key => ls.get(key),\n setItem: (key, value) => ls.set(key, value),\n removeItem: key => ls.remove(key)\n }\n })(store);\n};\n","import * as funcHelpers from '@/libs/helper';\nimport events from './confirm/events';\ninterface IConfirm {\n title: string;\n message: string;\n button: {\n yes: string;\n no: string;\n };\n callback: any;\n}\nexport default ({ app, store }: any, inject: any) => {\n inject('helper', funcHelpers),\n inject('modalWallet', {\n show() {\n store.commit('app/setOpenModalWallet', true);\n },\n hide() {\n store.commit('app/setOpenModalWallet', false);\n }\n }),\n inject('loadingPage', {\n start() {\n store.commit('app/setAppLoading', true);\n },\n finish() {\n store.commit('app/setAppLoading', false);\n }\n }),\n inject('confirm', (params: IConfirm) => {\n if (typeof params === 'object') {\n if (params.hasOwnProperty('callback') && typeof params.callback != 'function') {\n let callbackType = typeof params.callback;\n throw new Error(`Callback type must be an function. Caught: ${callbackType}. Expected: function`);\n }\n events.$emit('open', params);\n }\n });\n};\n","export const supportChains = require('~/configs/networkSupport.json');\nexport const metaConfigs = require('~/configs/metaconfig.json');\nexport const isDevelopment = process.env.NODE_ENV === 'development';\n\nconst apiEndpoint = process.env.API_ENDPOINT?.toString() || 'https://gameb.io/dev/gaiaapi';\nexport const contractsLists = {\n // cyga address\n BIF_TOKEN_ADDRESS: process.env.BIF_TOKEN_ADDRESS?.toString(),\n BIF_RATIO_TOKEN_ADDRESS: process.env.BIF_RATIO_TOKEN_ADDRESS?.toString(),\n\n // market address\n NFT_PLANT_MARKET_ADDRESS: process.env.NFT_PLANT_MARKET_ADDRESS?.toString(),\n NFT_POT_MARKET_ADDRESS: process.env.NFT_POT_MARKET_ADDRESS?.toString(),\n\n // nft address\n NFT_PLANT_ADDRESS: process.env.NFT_PLANT_ADDRESS?.toString(),\n NFT_POT_ADDRESS: process.env.NFT_POT_ADDRESS?.toString()\n};\n\nexport const smcMode = process.env.SMC_MODE?.toString();\n\nexport const rpcSupport = supportChains.testnet.reduce((acc: any, cur: any) => {\n acc[cur.chainId] = cur.rpcUrl;\n return acc;\n}, {});\n\nexport const thirdPartyConfig = {\n gCaptchaKey: process.env.GOOGLE_CAPTCHA_KEY?.toString()\n};\n\nexport const configAvatar = {\n cdnAvatars: process.env.AVATAR_CDN?.toString(),\n storageAvatars: process.env.AVATAR_STORAGE?.toString(),\n syncTime: Number(process.env.SYNC_TIME) //15mins * 60s\n};\n\nexport const configApi = {\n login: `${apiEndpoint}/oauth/authorize`,\n refreshToken: `${apiEndpoint}/oauth/token`,\n register: `${apiEndpoint}/users`,\n active: `${apiEndpoint}/users/verification/`,\n resendActive: `${apiEndpoint}/users/sendverification`,\n info: `${apiEndpoint}/users/me`,\n changePassword: `${apiEndpoint}/users/changepass`,\n changeFullname: `${apiEndpoint}/users/fullname`,\n resetPassword: `${apiEndpoint}/users/resetpass`,\n uploadAvatar: `${apiEndpoint}/upload/avatar`,\n\n walletNonce: `${apiEndpoint}/wallets/nonce/`,\n walletSign: `${apiEndpoint}/wallets/sign`,\n\n usdtRate: `${process.env.URL_PANCAKESWAP_API}/tokens/${contractsLists.BIF_RATIO_TOKEN_ADDRESS}`,\n\n getDpetNFT_old: `http://34.124.224.243:8109/api/nfts/inv/`,\n // getDpetNFT: `https://gaiagames.io/nftbrawlers/nft/api/nfts/inv/`\n getDpetNFT: `https://gaiagames.io/nftbrawlers/nft/api/nfts2/inv/`\n};\n","import Vue from 'vue';\n\nconst events = new Vue({\n name: 'confirm-dialog'\n});\n\nexport default events;\n","import { showNotification } from '~/libs/helper';\nexport default async function ({ app, store, redirect }: any) {\n if (process.client && store.state.walletConnect.isLogin) {\n const { router } = app;\n await store.dispatch('walletConnect/connect');\n const chainId = await store.getters['walletConnect/getChainId'];\n if (chainId !== 56) {\n showNotification(`game not support chainId: ${chainId}, please switch chain BSC Mainnet`, false);\n //switch chain support\n store.dispatch('walletConnect/metamaskSwitchChain', 56);\n }\n }\n}\n","import state from './state';\nimport getters from './getters';\nimport mutations from './mutations';\nimport actions from './actions';\n\nexport default {\n namespaced: true,\n state,\n getters,\n mutations,\n actions\n};\n","import state from './state'\nimport getters from './getters'\nimport mutations from './mutations'\nimport actions from './actions'\n\nexport default {\n namespaced: true,\n state,\n getters,\n mutations,\n actions,\n}\n","export const CATEGORY_PLANT = 'nplant';\nexport const CATEGORY_POT = 'npot';\nexport const MAX_GAS_FEE = 400000;\nexport const ALLOWANCE_MAX = '115792089237316195423570985008687907853269984665640564039457584007913129639935';\nexport const WEB3_TIME_LIMIT = 31536000;\n\nexport const SMC_STAKE_DPET_OLD = '0x239fB31Ac9325CAE7B5019789b9A4AD4Cc6c7387';\nexport const SMC_STAKE_DPET_OLD2 = '0x3cc63a0925b8f33973821c47a300851cc51b25dc';\nexport const SMC_STAKE_DPET = '0xA7bF5b21f076d049352e2C1F01eacA25AF8F2a47';\n","export const ldaExchangeAbi = [\n {\n anonymous: false,\n inputs: [\n {\n indexed: false,\n internalType: 'address',\n name: 'previousAdmin',\n type: 'address',\n },\n {\n indexed: false,\n internalType: 'address',\n name: 'newAdmin',\n type: 'address',\n },\n ],\n name: 'AdminChanged',\n type: 'event',\n },\n {\n anonymous: false,\n inputs: [\n {\n indexed: true,\n internalType: 'address',\n name: 'beacon',\n type: 'address',\n },\n ],\n name: 'BeaconUpgraded',\n type: 'event',\n },\n {\n anonymous: false,\n inputs: [\n {\n indexed: true,\n internalType: 'address',\n name: '_owner',\n type: 'address',\n },\n {\n indexed: false,\n internalType: 'uint256',\n name: '_amount',\n type: 'uint256',\n },\n {\n indexed: false,\n internalType: 'uint256',\n name: '_nonce',\n type: 'uint256',\n },\n ],\n name: 'ClaimVHAF',\n type: 'event',\n },\n {\n anonymous: false,\n inputs: [\n {\n indexed: true,\n internalType: 'address',\n name: '_owner',\n type: 'address',\n },\n {\n indexed: false,\n internalType: 'uint256',\n name: '_amount',\n type: 'uint256',\n },\n {\n indexed: false,\n internalType: 'uint256',\n name: '_nonce',\n type: 'uint256',\n },\n {\n indexed: false,\n internalType: 'string',\n name: 'box',\n type: 'string',\n },\n ],\n name: 'ClaimVHAFBox',\n type: 'event',\n },\n {\n anonymous: false,\n inputs: [\n {\n indexed: false,\n internalType: 'address',\n name: 'account',\n type: 'address',\n },\n ],\n name: 'Paused',\n type: 'event',\n },\n {\n anonymous: false,\n inputs: [\n {\n indexed: true,\n internalType: 'bytes32',\n name: 'role',\n type: 'bytes32',\n },\n {\n indexed: true,\n internalType: 'bytes32',\n name: 'previousAdminRole',\n type: 'bytes32',\n },\n {\n indexed: true,\n internalType: 'bytes32',\n name: 'newAdminRole',\n type: 'bytes32',\n },\n ],\n name: 'RoleAdminChanged',\n type: 'event',\n },\n {\n anonymous: false,\n inputs: [\n {\n indexed: true,\n internalType: 'bytes32',\n name: 'role',\n type: 'bytes32',\n },\n {\n indexed: true,\n internalType: 'address',\n name: 'account',\n type: 'address',\n },\n {\n indexed: true,\n internalType: 'address',\n name: 'sender',\n type: 'address',\n },\n ],\n name: 'RoleGranted',\n type: 'event',\n },\n {\n anonymous: false,\n inputs: [\n {\n indexed: true,\n internalType: 'bytes32',\n name: 'role',\n type: 'bytes32',\n },\n {\n indexed: true,\n internalType: 'address',\n name: 'account',\n type: 'address',\n },\n {\n indexed: true,\n internalType: 'address',\n name: 'sender',\n type: 'address',\n },\n ],\n name: 'RoleRevoked',\n type: 'event',\n },\n {\n anonymous: false,\n inputs: [\n {\n indexed: false,\n internalType: 'address',\n name: 'account',\n type: 'address',\n },\n ],\n name: 'Unpaused',\n type: 'event',\n },\n {\n anonymous: false,\n inputs: [\n {\n indexed: true,\n internalType: 'address',\n name: 'implementation',\n type: 'address',\n },\n ],\n name: 'Upgraded',\n type: 'event',\n },\n {\n anonymous: false,\n inputs: [\n {\n indexed: true,\n internalType: 'address',\n name: '_owner',\n type: 'address',\n },\n {\n indexed: false,\n internalType: 'uint256',\n name: '_amount',\n type: 'uint256',\n },\n {\n indexed: false,\n internalType: 'string',\n name: 'data',\n type: 'string',\n },\n {\n indexed: false,\n internalType: 'string',\n name: 'box',\n type: 'string',\n },\n ],\n name: 'UseHAF4Box',\n type: 'event',\n },\n {\n anonymous: false,\n inputs: [\n {\n indexed: true,\n internalType: 'address',\n name: '_owner',\n type: 'address',\n },\n {\n indexed: false,\n internalType: 'uint256',\n name: '_amount',\n type: 'uint256',\n },\n {\n indexed: false,\n internalType: 'string',\n name: 'data',\n type: 'string',\n },\n ],\n name: 'UseVHAF',\n type: 'event',\n },\n {\n inputs: [],\n name: 'DEFAULT_ADMIN_ROLE',\n outputs: [\n {\n internalType: 'bytes32',\n name: '',\n type: 'bytes32',\n },\n ],\n stateMutability: 'view',\n type: 'function',\n },\n {\n inputs: [],\n name: 'WITHDRAW_ROLE',\n outputs: [\n {\n internalType: 'bytes32',\n name: '',\n type: 'bytes32',\n },\n ],\n stateMutability: 'view',\n type: 'function',\n },\n {\n inputs: [\n {\n internalType: 'address',\n name: '_address',\n type: 'address',\n },\n {\n internalType: 'uint256',\n name: '_amount',\n type: 'uint256',\n },\n {\n internalType: 'uint256',\n name: '_nonce',\n type: 'uint256',\n },\n {\n internalType: 'bytes',\n name: '_signature',\n type: 'bytes',\n },\n ],\n name: 'claim',\n outputs: [],\n stateMutability: 'nonpayable',\n type: 'function',\n },\n {\n inputs: [\n {\n internalType: 'address',\n name: '_address',\n type: 'address',\n },\n {\n internalType: 'uint256',\n name: '_amount',\n type: 'uint256',\n },\n {\n internalType: 'uint256',\n name: '_nonce',\n type: 'uint256',\n },\n {\n internalType: 'string',\n name: 'box',\n type: 'string',\n },\n {\n internalType: 'bytes',\n name: '_signature',\n type: 'bytes',\n },\n ],\n name: 'claimVHAF',\n outputs: [],\n stateMutability: 'nonpayable',\n type: 'function',\n },\n {\n inputs: [],\n name: 'getBalance',\n outputs: [\n {\n internalType: 'uint256',\n name: '',\n type: 'uint256',\n },\n ],\n stateMutability: 'view',\n type: 'function',\n },\n {\n inputs: [\n {\n internalType: 'bytes32',\n name: 'role',\n type: 'bytes32',\n },\n ],\n name: 'getRoleAdmin',\n outputs: [\n {\n internalType: 'bytes32',\n name: '',\n type: 'bytes32',\n },\n ],\n stateMutability: 'view',\n type: 'function',\n },\n {\n inputs: [\n {\n internalType: 'bytes32',\n name: 'role',\n type: 'bytes32',\n },\n {\n internalType: 'address',\n name: 'account',\n type: 'address',\n },\n ],\n name: 'grantRole',\n outputs: [],\n stateMutability: 'nonpayable',\n type: 'function',\n },\n {\n inputs: [\n {\n internalType: 'bytes32',\n name: 'role',\n type: 'bytes32',\n },\n {\n internalType: 'address',\n name: 'account',\n type: 'address',\n },\n ],\n name: 'hasRole',\n outputs: [\n {\n internalType: 'bool',\n name: '',\n type: 'bool',\n },\n ],\n stateMutability: 'view',\n type: 'function',\n },\n {\n inputs: [\n {\n internalType: 'address',\n name: '_signer',\n type: 'address',\n },\n {\n internalType: 'address',\n name: '_tokenAddress',\n type: 'address',\n },\n {\n internalType: 'string',\n name: '_network',\n type: 'string',\n },\n {\n internalType: 'string',\n name: '_claimName',\n type: 'string',\n },\n ],\n name: 'initialize',\n outputs: [],\n stateMutability: 'nonpayable',\n type: 'function',\n },\n {\n inputs: [],\n name: 'maxClaim',\n outputs: [\n {\n internalType: 'uint256',\n name: '',\n type: 'uint256',\n },\n ],\n stateMutability: 'view',\n type: 'function',\n },\n {\n inputs: [],\n name: 'pause',\n outputs: [],\n stateMutability: 'nonpayable',\n type: 'function',\n },\n {\n inputs: [],\n name: 'paused',\n outputs: [\n {\n internalType: 'bool',\n name: '',\n type: 'bool',\n },\n ],\n stateMutability: 'view',\n type: 'function',\n },\n {\n inputs: [\n {\n internalType: 'bytes32',\n name: 'role',\n type: 'bytes32',\n },\n {\n internalType: 'address',\n name: 'account',\n type: 'address',\n },\n ],\n name: 'renounceRole',\n outputs: [],\n stateMutability: 'nonpayable',\n type: 'function',\n },\n {\n inputs: [\n {\n internalType: 'bytes32',\n name: 'role',\n type: 'bytes32',\n },\n {\n internalType: 'address',\n name: 'account',\n type: 'address',\n },\n ],\n name: 'revokeRole',\n outputs: [],\n stateMutability: 'nonpayable',\n type: 'function',\n },\n {\n inputs: [\n {\n internalType: 'uint256',\n name: 'newMax',\n type: 'uint256',\n },\n ],\n name: 'setMaxClaim',\n outputs: [],\n stateMutability: 'nonpayable',\n type: 'function',\n },\n {\n inputs: [\n {\n internalType: 'address',\n name: '_address',\n type: 'address',\n },\n ],\n name: 'setSigner',\n outputs: [],\n stateMutability: 'nonpayable',\n type: 'function',\n },\n {\n inputs: [\n {\n internalType: 'bytes4',\n name: 'interfaceId',\n type: 'bytes4',\n },\n ],\n name: 'supportsInterface',\n outputs: [\n {\n internalType: 'bool',\n name: '',\n type: 'bool',\n },\n ],\n stateMutability: 'view',\n type: 'function',\n },\n {\n inputs: [],\n name: 'tokenAddress',\n outputs: [\n {\n internalType: 'address',\n name: '',\n type: 'address',\n },\n ],\n stateMutability: 'view',\n type: 'function',\n },\n {\n inputs: [],\n name: 'unpause',\n outputs: [],\n stateMutability: 'nonpayable',\n type: 'function',\n },\n {\n inputs: [\n {\n internalType: 'address',\n name: 'newImplementation',\n type: 'address',\n },\n ],\n name: 'upgradeTo',\n outputs: [],\n stateMutability: 'nonpayable',\n type: 'function',\n },\n {\n inputs: [\n {\n internalType: 'address',\n name: 'newImplementation',\n type: 'address',\n },\n {\n internalType: 'bytes',\n name: 'data',\n type: 'bytes',\n },\n ],\n name: 'upgradeToAndCall',\n outputs: [],\n stateMutability: 'payable',\n type: 'function',\n },\n {\n inputs: [\n {\n internalType: 'uint256',\n name: '_amount',\n type: 'uint256',\n },\n {\n internalType: 'string',\n name: 'data',\n type: 'string',\n },\n ],\n name: 'useToken',\n outputs: [],\n stateMutability: 'nonpayable',\n type: 'function',\n },\n {\n inputs: [\n {\n internalType: 'uint256',\n name: '_amount',\n type: 'uint256',\n },\n {\n internalType: 'string',\n name: 'data',\n type: 'string',\n },\n {\n internalType: 'string',\n name: 'box',\n type: 'string',\n },\n ],\n name: 'useToken4Box',\n outputs: [],\n stateMutability: 'nonpayable',\n type: 'function',\n },\n {\n inputs: [],\n name: 'withdrawBalance',\n outputs: [],\n stateMutability: 'nonpayable',\n type: 'function',\n },\n]\nexport const vharCoreAbi = [\n {\n anonymous: false,\n inputs: [\n {\n indexed: false,\n internalType: 'address',\n name: 'previousAdmin',\n type: 'address',\n },\n {\n indexed: false,\n internalType: 'address',\n name: 'newAdmin',\n type: 'address',\n },\n ],\n name: 'AdminChanged',\n type: 'event',\n },\n {\n anonymous: false,\n inputs: [\n {\n indexed: true,\n internalType: 'address',\n name: 'beacon',\n type: 'address',\n },\n ],\n name: 'BeaconUpgraded',\n type: 'event',\n },\n {\n anonymous: false,\n inputs: [\n {\n indexed: true,\n internalType: 'address',\n name: '_owner',\n type: 'address',\n },\n {\n indexed: false,\n internalType: 'uint256',\n name: '_amount',\n type: 'uint256',\n },\n {\n indexed: false,\n internalType: 'uint256',\n name: '_nonce',\n type: 'uint256',\n },\n ],\n name: 'ClaimVHAF',\n type: 'event',\n },\n {\n anonymous: false,\n inputs: [\n {\n indexed: true,\n internalType: 'address',\n name: '_owner',\n type: 'address',\n },\n {\n indexed: false,\n internalType: 'uint256',\n name: '_amount',\n type: 'uint256',\n },\n {\n indexed: false,\n internalType: 'string',\n name: 'box',\n type: 'string',\n },\n ],\n name: 'ClaimVHAFBox',\n type: 'event',\n },\n {\n anonymous: false,\n inputs: [\n {\n indexed: false,\n internalType: 'address',\n name: 'account',\n type: 'address',\n },\n ],\n name: 'Paused',\n type: 'event',\n },\n {\n anonymous: false,\n inputs: [\n {\n indexed: true,\n internalType: 'bytes32',\n name: 'role',\n type: 'bytes32',\n },\n {\n indexed: true,\n internalType: 'bytes32',\n name: 'previousAdminRole',\n type: 'bytes32',\n },\n {\n indexed: true,\n internalType: 'bytes32',\n name: 'newAdminRole',\n type: 'bytes32',\n },\n ],\n name: 'RoleAdminChanged',\n type: 'event',\n },\n {\n anonymous: false,\n inputs: [\n {\n indexed: true,\n internalType: 'bytes32',\n name: 'role',\n type: 'bytes32',\n },\n {\n indexed: true,\n internalType: 'address',\n name: 'account',\n type: 'address',\n },\n {\n indexed: true,\n internalType: 'address',\n name: 'sender',\n type: 'address',\n },\n ],\n name: 'RoleGranted',\n type: 'event',\n },\n {\n anonymous: false,\n inputs: [\n {\n indexed: true,\n internalType: 'bytes32',\n name: 'role',\n type: 'bytes32',\n },\n {\n indexed: true,\n internalType: 'address',\n name: 'account',\n type: 'address',\n },\n {\n indexed: true,\n internalType: 'address',\n name: 'sender',\n type: 'address',\n },\n ],\n name: 'RoleRevoked',\n type: 'event',\n },\n {\n anonymous: false,\n inputs: [\n {\n indexed: false,\n internalType: 'address',\n name: 'account',\n type: 'address',\n },\n ],\n name: 'Unpaused',\n type: 'event',\n },\n {\n anonymous: false,\n inputs: [\n {\n indexed: true,\n internalType: 'address',\n name: 'implementation',\n type: 'address',\n },\n ],\n name: 'Upgraded',\n type: 'event',\n },\n {\n anonymous: false,\n inputs: [\n {\n indexed: true,\n internalType: 'address',\n name: '_owner',\n type: 'address',\n },\n {\n indexed: false,\n internalType: 'uint256',\n name: '_amount',\n type: 'uint256',\n },\n {\n indexed: false,\n internalType: 'string',\n name: 'data',\n type: 'string',\n },\n {\n indexed: false,\n internalType: 'string',\n name: 'box',\n type: 'string',\n },\n ],\n name: 'UseHAF4Box',\n type: 'event',\n },\n {\n anonymous: false,\n inputs: [\n {\n indexed: true,\n internalType: 'address',\n name: '_owner',\n type: 'address',\n },\n {\n indexed: false,\n internalType: 'uint256',\n name: '_amount',\n type: 'uint256',\n },\n {\n indexed: false,\n internalType: 'string',\n name: 'data',\n type: 'string',\n },\n ],\n name: 'UseVHAF',\n type: 'event',\n },\n {\n inputs: [],\n name: 'DEFAULT_ADMIN_ROLE',\n outputs: [\n {\n internalType: 'bytes32',\n name: '',\n type: 'bytes32',\n },\n ],\n stateMutability: 'view',\n type: 'function',\n },\n {\n inputs: [],\n name: 'WITHDRAW_ROLE',\n outputs: [\n {\n internalType: 'bytes32',\n name: '',\n type: 'bytes32',\n },\n ],\n stateMutability: 'view',\n type: 'function',\n },\n {\n inputs: [\n {\n internalType: 'address',\n name: '_address',\n type: 'address',\n },\n {\n internalType: 'uint256',\n name: '_amount',\n type: 'uint256',\n },\n {\n internalType: 'uint256',\n name: '_nonce',\n type: 'uint256',\n },\n {\n internalType: 'bytes',\n name: '_signature',\n type: 'bytes',\n },\n ],\n name: 'claim',\n outputs: [],\n stateMutability: 'nonpayable',\n type: 'function',\n },\n {\n inputs: [\n {\n internalType: 'address',\n name: '_address',\n type: 'address',\n },\n {\n internalType: 'uint256',\n name: '_amount',\n type: 'uint256',\n },\n {\n internalType: 'string',\n name: 'box',\n type: 'string',\n },\n {\n internalType: 'bytes',\n name: '_signature',\n type: 'bytes',\n },\n ],\n name: 'claimVHAF',\n outputs: [],\n stateMutability: 'nonpayable',\n type: 'function',\n },\n {\n inputs: [],\n name: 'getBalance',\n outputs: [\n {\n internalType: 'uint256',\n name: '',\n type: 'uint256',\n },\n ],\n stateMutability: 'view',\n type: 'function',\n },\n {\n inputs: [\n {\n internalType: 'bytes32',\n name: 'role',\n type: 'bytes32',\n },\n ],\n name: 'getRoleAdmin',\n outputs: [\n {\n internalType: 'bytes32',\n name: '',\n type: 'bytes32',\n },\n ],\n stateMutability: 'view',\n type: 'function',\n },\n {\n inputs: [\n {\n internalType: 'bytes32',\n name: 'role',\n type: 'bytes32',\n },\n {\n internalType: 'address',\n name: 'account',\n type: 'address',\n },\n ],\n name: 'grantRole',\n outputs: [],\n stateMutability: 'nonpayable',\n type: 'function',\n },\n {\n inputs: [\n {\n internalType: 'bytes32',\n name: 'role',\n type: 'bytes32',\n },\n {\n internalType: 'address',\n name: 'account',\n type: 'address',\n },\n ],\n name: 'hasRole',\n outputs: [\n {\n internalType: 'bool',\n name: '',\n type: 'bool',\n },\n ],\n stateMutability: 'view',\n type: 'function',\n },\n {\n inputs: [\n {\n internalType: 'address',\n name: '_signer',\n type: 'address',\n },\n {\n internalType: 'address',\n name: '_tokenAddress',\n type: 'address',\n },\n {\n internalType: 'string',\n name: '_network',\n type: 'string',\n },\n {\n internalType: 'string',\n name: '_claimName',\n type: 'string',\n },\n ],\n name: 'initialize',\n outputs: [],\n stateMutability: 'nonpayable',\n type: 'function',\n },\n {\n inputs: [],\n name: 'maxClaim',\n outputs: [\n {\n internalType: 'uint256',\n name: '',\n type: 'uint256',\n },\n ],\n stateMutability: 'view',\n type: 'function',\n },\n {\n inputs: [],\n name: 'pause',\n outputs: [],\n stateMutability: 'nonpayable',\n type: 'function',\n },\n {\n inputs: [],\n name: 'paused',\n outputs: [\n {\n internalType: 'bool',\n name: '',\n type: 'bool',\n },\n ],\n stateMutability: 'view',\n type: 'function',\n },\n {\n inputs: [\n {\n internalType: 'bytes32',\n name: 'role',\n type: 'bytes32',\n },\n {\n internalType: 'address',\n name: 'account',\n type: 'address',\n },\n ],\n name: 'renounceRole',\n outputs: [],\n stateMutability: 'nonpayable',\n type: 'function',\n },\n {\n inputs: [\n {\n internalType: 'bytes32',\n name: 'role',\n type: 'bytes32',\n },\n {\n internalType: 'address',\n name: 'account',\n type: 'address',\n },\n ],\n name: 'revokeRole',\n outputs: [],\n stateMutability: 'nonpayable',\n type: 'function',\n },\n {\n inputs: [\n {\n internalType: 'uint256',\n name: 'newMax',\n type: 'uint256',\n },\n ],\n name: 'setMaxClaim',\n outputs: [],\n stateMutability: 'nonpayable',\n type: 'function',\n },\n {\n inputs: [\n {\n internalType: 'address',\n name: '_address',\n type: 'address',\n },\n ],\n name: 'setSigner',\n outputs: [],\n stateMutability: 'nonpayable',\n type: 'function',\n },\n {\n inputs: [\n {\n internalType: 'bytes4',\n name: 'interfaceId',\n type: 'bytes4',\n },\n ],\n name: 'supportsInterface',\n outputs: [\n {\n internalType: 'bool',\n name: '',\n type: 'bool',\n },\n ],\n stateMutability: 'view',\n type: 'function',\n },\n {\n inputs: [],\n name: 'tokenAddress',\n outputs: [\n {\n internalType: 'address',\n name: '',\n type: 'address',\n },\n ],\n stateMutability: 'view',\n type: 'function',\n },\n {\n inputs: [],\n name: 'unpause',\n outputs: [],\n stateMutability: 'nonpayable',\n type: 'function',\n },\n {\n inputs: [\n {\n internalType: 'address',\n name: 'newImplementation',\n type: 'address',\n },\n ],\n name: 'upgradeTo',\n outputs: [],\n stateMutability: 'nonpayable',\n type: 'function',\n },\n {\n inputs: [\n {\n internalType: 'address',\n name: 'newImplementation',\n type: 'address',\n },\n {\n internalType: 'bytes',\n name: 'data',\n type: 'bytes',\n },\n ],\n name: 'upgradeToAndCall',\n outputs: [],\n stateMutability: 'payable',\n type: 'function',\n },\n {\n inputs: [\n {\n internalType: 'uint256',\n name: '_amount',\n type: 'uint256',\n },\n {\n internalType: 'string',\n name: 'data',\n type: 'string',\n },\n ],\n name: 'useToken',\n outputs: [],\n stateMutability: 'nonpayable',\n type: 'function',\n },\n {\n inputs: [\n {\n internalType: 'uint256',\n name: '_amount',\n type: 'uint256',\n },\n {\n internalType: 'string',\n name: 'data',\n type: 'string',\n },\n {\n internalType: 'string',\n name: 'box',\n type: 'string',\n },\n ],\n name: 'useToken4Box',\n outputs: [],\n stateMutability: 'nonpayable',\n type: 'function',\n },\n {\n inputs: [],\n name: 'withdrawBalance',\n outputs: [],\n stateMutability: 'nonpayable',\n type: 'function',\n },\n]\n\nexport const tokenAbi = [\n {\n inputs: [],\n payable: false,\n stateMutability: 'nonpayable',\n type: 'constructor',\n },\n {\n anonymous: false,\n inputs: [\n {\n indexed: true,\n internalType: 'address',\n name: 'owner',\n type: 'address',\n },\n {\n indexed: true,\n internalType: 'address',\n name: 'spender',\n type: 'address',\n },\n {\n indexed: false,\n internalType: 'uint256',\n name: 'value',\n type: 'uint256',\n },\n ],\n name: 'Approval',\n type: 'event',\n },\n {\n anonymous: false,\n inputs: [\n {\n indexed: true,\n internalType: 'address',\n name: 'previousOwner',\n type: 'address',\n },\n {\n indexed: true,\n internalType: 'address',\n name: 'newOwner',\n type: 'address',\n },\n ],\n name: 'OwnershipTransferred',\n type: 'event',\n },\n {\n anonymous: false,\n inputs: [],\n name: 'Pause',\n type: 'event',\n },\n {\n anonymous: false,\n inputs: [\n {\n indexed: true,\n internalType: 'address',\n name: 'from',\n type: 'address',\n },\n {\n indexed: true,\n internalType: 'address',\n name: 'to',\n type: 'address',\n },\n {\n indexed: false,\n internalType: 'uint256',\n name: 'value',\n type: 'uint256',\n },\n ],\n name: 'Transfer',\n type: 'event',\n },\n {\n anonymous: false,\n inputs: [],\n name: 'Unpause',\n type: 'event',\n },\n {\n payable: true,\n stateMutability: 'payable',\n type: 'fallback',\n },\n {\n constant: true,\n inputs: [\n {\n internalType: 'address',\n name: 'owner',\n type: 'address',\n },\n {\n internalType: 'address',\n name: 'spender',\n type: 'address',\n },\n ],\n name: 'allowance',\n outputs: [\n {\n internalType: 'uint256',\n name: '',\n type: 'uint256',\n },\n ],\n payable: false,\n stateMutability: 'view',\n type: 'function',\n },\n {\n constant: false,\n inputs: [\n {\n internalType: 'address',\n name: 'spender',\n type: 'address',\n },\n {\n internalType: 'uint256',\n name: 'amount',\n type: 'uint256',\n },\n ],\n name: 'approve',\n outputs: [\n {\n internalType: 'bool',\n name: '',\n type: 'bool',\n },\n ],\n payable: false,\n stateMutability: 'nonpayable',\n type: 'function',\n },\n {\n constant: true,\n inputs: [\n {\n internalType: 'address',\n name: 'account',\n type: 'address',\n },\n ],\n name: 'balanceOf',\n outputs: [\n {\n internalType: 'uint256',\n name: '',\n type: 'uint256',\n },\n ],\n payable: false,\n stateMutability: 'view',\n type: 'function',\n },\n {\n constant: false,\n inputs: [\n {\n internalType: 'uint256',\n name: '_amount',\n type: 'uint256',\n },\n ],\n name: 'burn',\n outputs: [],\n payable: false,\n stateMutability: 'nonpayable',\n type: 'function',\n },\n {\n constant: true,\n inputs: [],\n name: 'decimals',\n outputs: [\n {\n internalType: 'uint8',\n name: '',\n type: 'uint8',\n },\n ],\n payable: false,\n stateMutability: 'view',\n type: 'function',\n },\n {\n constant: false,\n inputs: [\n {\n internalType: 'address',\n name: 'spender',\n type: 'address',\n },\n {\n internalType: 'uint256',\n name: 'subtractedValue',\n type: 'uint256',\n },\n ],\n name: 'decreaseAllowance',\n outputs: [\n {\n internalType: 'bool',\n name: '',\n type: 'bool',\n },\n ],\n payable: false,\n stateMutability: 'nonpayable',\n type: 'function',\n },\n {\n constant: false,\n inputs: [\n {\n internalType: 'address',\n name: 'spender',\n type: 'address',\n },\n {\n internalType: 'uint256',\n name: 'addedValue',\n type: 'uint256',\n },\n ],\n name: 'increaseAllowance',\n outputs: [\n {\n internalType: 'bool',\n name: '',\n type: 'bool',\n },\n ],\n payable: false,\n stateMutability: 'nonpayable',\n type: 'function',\n },\n {\n constant: true,\n inputs: [],\n name: 'isOwner',\n outputs: [\n {\n internalType: 'bool',\n name: '',\n type: 'bool',\n },\n ],\n payable: false,\n stateMutability: 'view',\n type: 'function',\n },\n {\n constant: false,\n inputs: [\n {\n internalType: 'uint256',\n name: 'amount',\n type: 'uint256',\n },\n ],\n name: 'mint',\n outputs: [\n {\n internalType: 'bool',\n name: '',\n type: 'bool',\n },\n ],\n payable: false,\n stateMutability: 'nonpayable',\n type: 'function',\n },\n {\n constant: true,\n inputs: [],\n name: 'name',\n outputs: [\n {\n internalType: 'string',\n name: '',\n type: 'string',\n },\n ],\n payable: false,\n stateMutability: 'view',\n type: 'function',\n },\n {\n constant: true,\n inputs: [],\n name: 'owner',\n outputs: [\n {\n internalType: 'address',\n name: '',\n type: 'address',\n },\n ],\n payable: false,\n stateMutability: 'view',\n type: 'function',\n },\n {\n constant: false,\n inputs: [],\n name: 'pause',\n outputs: [\n {\n internalType: 'bool',\n name: '',\n type: 'bool',\n },\n ],\n payable: false,\n stateMutability: 'nonpayable',\n type: 'function',\n },\n {\n constant: true,\n inputs: [],\n name: 'paused',\n outputs: [\n {\n internalType: 'bool',\n name: '',\n type: 'bool',\n },\n ],\n payable: false,\n stateMutability: 'view',\n type: 'function',\n },\n {\n constant: false,\n inputs: [],\n name: 'renounceOwnership',\n outputs: [],\n payable: false,\n stateMutability: 'nonpayable',\n type: 'function',\n },\n {\n constant: true,\n inputs: [],\n name: 'symbol',\n outputs: [\n {\n internalType: 'string',\n name: '',\n type: 'string',\n },\n ],\n payable: false,\n stateMutability: 'view',\n type: 'function',\n },\n {\n constant: true,\n inputs: [],\n name: 'totalSupply',\n outputs: [\n {\n internalType: 'uint256',\n name: '',\n type: 'uint256',\n },\n ],\n payable: false,\n stateMutability: 'view',\n type: 'function',\n },\n {\n constant: false,\n inputs: [\n {\n internalType: 'address',\n name: '_receiver',\n type: 'address',\n },\n {\n internalType: 'uint256',\n name: '_amount',\n type: 'uint256',\n },\n ],\n name: 'transfer',\n outputs: [\n {\n internalType: 'bool',\n name: 'success',\n type: 'bool',\n },\n ],\n payable: false,\n stateMutability: 'nonpayable',\n type: 'function',\n },\n {\n constant: false,\n inputs: [\n {\n internalType: 'address',\n name: '_from',\n type: 'address',\n },\n {\n internalType: 'address',\n name: '_receiver',\n type: 'address',\n },\n {\n internalType: 'uint256',\n name: '_amount',\n type: 'uint256',\n },\n ],\n name: 'transferFrom',\n outputs: [\n {\n internalType: 'bool',\n name: '',\n type: 'bool',\n },\n ],\n payable: false,\n stateMutability: 'nonpayable',\n type: 'function',\n },\n {\n constant: false,\n inputs: [\n {\n internalType: 'address',\n name: 'newOwner',\n type: 'address',\n },\n ],\n name: 'transferOwnership',\n outputs: [],\n payable: false,\n stateMutability: 'nonpayable',\n type: 'function',\n },\n {\n constant: false,\n inputs: [],\n name: 'unpause',\n outputs: [\n {\n internalType: 'bool',\n name: '',\n type: 'bool',\n },\n ],\n payable: false,\n stateMutability: 'nonpayable',\n type: 'function',\n },\n]\n\nexport const plantAbi = [\n {\n anonymous: false,\n inputs: [\n {\n indexed: false,\n internalType: 'address',\n name: 'previousAdmin',\n type: 'address',\n },\n {\n indexed: false,\n internalType: 'address',\n name: 'newAdmin',\n type: 'address',\n },\n ],\n name: 'AdminChanged',\n type: 'event',\n },\n {\n anonymous: false,\n inputs: [\n {\n indexed: true,\n internalType: 'address',\n name: 'owner',\n type: 'address',\n },\n {\n indexed: true,\n internalType: 'address',\n name: 'approved',\n type: 'address',\n },\n {\n indexed: true,\n internalType: 'uint256',\n name: 'tokenId',\n type: 'uint256',\n },\n ],\n name: 'Approval',\n type: 'event',\n },\n {\n anonymous: false,\n inputs: [\n {\n indexed: true,\n internalType: 'address',\n name: 'owner',\n type: 'address',\n },\n {\n indexed: true,\n internalType: 'address',\n name: 'operator',\n type: 'address',\n },\n {\n indexed: false,\n internalType: 'bool',\n name: 'approved',\n type: 'bool',\n },\n ],\n name: 'ApprovalForAll',\n type: 'event',\n },\n {\n anonymous: false,\n inputs: [\n {\n indexed: false,\n internalType: 'address',\n name: 'owner',\n type: 'address',\n },\n {\n indexed: false,\n internalType: 'uint256',\n name: 'tokenId',\n type: 'uint256',\n },\n {\n indexed: false,\n internalType: 'uint256',\n name: 'nftId',\n type: 'uint256',\n },\n {\n indexed: false,\n internalType: 'uint256',\n name: 'price',\n type: 'uint256',\n },\n {\n indexed: false,\n internalType: 'string',\n name: 'source',\n type: 'string',\n },\n {\n indexed: false,\n internalType: 'string',\n name: 'info',\n type: 'string',\n },\n ],\n name: 'BPotCreate',\n type: 'event',\n },\n {\n anonymous: false,\n inputs: [\n {\n indexed: false,\n internalType: 'address',\n name: 'owner',\n type: 'address',\n },\n {\n indexed: false,\n internalType: 'uint256',\n name: 'tokenId',\n type: 'uint256',\n },\n {\n indexed: false,\n internalType: 'uint256',\n name: 'nftId',\n type: 'uint256',\n },\n {\n indexed: false,\n internalType: 'uint256',\n name: 'price',\n type: 'uint256',\n },\n {\n indexed: false,\n internalType: 'string',\n name: 'source',\n type: 'string',\n },\n {\n indexed: false,\n internalType: 'string',\n name: 'info',\n type: 'string',\n },\n {\n indexed: false,\n internalType: 'string',\n name: 'box',\n type: 'string',\n },\n ],\n name: 'BPotCreate4Box',\n type: 'event',\n },\n {\n anonymous: false,\n inputs: [\n {\n indexed: true,\n internalType: 'address',\n name: 'beacon',\n type: 'address',\n },\n ],\n name: 'BeaconUpgraded',\n type: 'event',\n },\n {\n anonymous: false,\n inputs: [\n {\n indexed: false,\n internalType: 'address',\n name: 'account',\n type: 'address',\n },\n ],\n name: 'Paused',\n type: 'event',\n },\n {\n anonymous: false,\n inputs: [\n {\n indexed: true,\n internalType: 'bytes32',\n name: 'role',\n type: 'bytes32',\n },\n {\n indexed: true,\n internalType: 'bytes32',\n name: 'previousAdminRole',\n type: 'bytes32',\n },\n {\n indexed: true,\n internalType: 'bytes32',\n name: 'newAdminRole',\n type: 'bytes32',\n },\n ],\n name: 'RoleAdminChanged',\n type: 'event',\n },\n {\n anonymous: false,\n inputs: [\n {\n indexed: true,\n internalType: 'bytes32',\n name: 'role',\n type: 'bytes32',\n },\n {\n indexed: true,\n internalType: 'address',\n name: 'account',\n type: 'address',\n },\n {\n indexed: true,\n internalType: 'address',\n name: 'sender',\n type: 'address',\n },\n ],\n name: 'RoleGranted',\n type: 'event',\n },\n {\n anonymous: false,\n inputs: [\n {\n indexed: true,\n internalType: 'bytes32',\n name: 'role',\n type: 'bytes32',\n },\n {\n indexed: true,\n internalType: 'address',\n name: 'account',\n type: 'address',\n },\n {\n indexed: true,\n internalType: 'address',\n name: 'sender',\n type: 'address',\n },\n ],\n name: 'RoleRevoked',\n type: 'event',\n },\n {\n anonymous: false,\n inputs: [\n {\n indexed: true,\n internalType: 'address',\n name: 'from',\n type: 'address',\n },\n {\n indexed: true,\n internalType: 'address',\n name: 'to',\n type: 'address',\n },\n {\n indexed: true,\n internalType: 'uint256',\n name: 'tokenId',\n type: 'uint256',\n },\n ],\n name: 'Transfer',\n type: 'event',\n },\n {\n anonymous: false,\n inputs: [\n {\n indexed: false,\n internalType: 'address',\n name: 'account',\n type: 'address',\n },\n ],\n name: 'Unpaused',\n type: 'event',\n },\n {\n anonymous: false,\n inputs: [\n {\n indexed: true,\n internalType: 'address',\n name: 'implementation',\n type: 'address',\n },\n ],\n name: 'Upgraded',\n type: 'event',\n },\n {\n inputs: [],\n name: 'DEFAULT_ADMIN_ROLE',\n outputs: [\n {\n internalType: 'bytes32',\n name: '',\n type: 'bytes32',\n },\n ],\n stateMutability: 'view',\n type: 'function',\n },\n {\n inputs: [],\n name: 'PAUSER_ROLE',\n outputs: [\n {\n internalType: 'bytes32',\n name: '',\n type: 'bytes32',\n },\n ],\n stateMutability: 'view',\n type: 'function',\n },\n {\n inputs: [],\n name: 'TokenAdress',\n outputs: [\n {\n internalType: 'address',\n name: '',\n type: 'address',\n },\n ],\n stateMutability: 'view',\n type: 'function',\n },\n {\n inputs: [\n {\n internalType: 'address',\n name: 'to',\n type: 'address',\n },\n {\n internalType: 'uint256',\n name: 'tokenId',\n type: 'uint256',\n },\n ],\n name: 'approve',\n outputs: [],\n stateMutability: 'nonpayable',\n type: 'function',\n },\n {\n inputs: [\n {\n internalType: 'address',\n name: 'owner',\n type: 'address',\n },\n ],\n name: 'balanceOf',\n outputs: [\n {\n internalType: 'uint256',\n name: '',\n type: 'uint256',\n },\n ],\n stateMutability: 'view',\n type: 'function',\n },\n {\n inputs: [],\n name: 'boxAddr',\n outputs: [\n {\n internalType: 'address',\n name: '',\n type: 'address',\n },\n ],\n stateMutability: 'view',\n type: 'function',\n },\n {\n inputs: [\n {\n internalType: 'address',\n name: 'owner',\n type: 'address',\n },\n {\n internalType: 'uint256',\n name: 'amount',\n type: 'uint256',\n },\n {\n internalType: 'uint256',\n name: 'nftId',\n type: 'uint256',\n },\n {\n internalType: 'string',\n name: 'source',\n type: 'string',\n },\n {\n internalType: 'string',\n name: 'limitType',\n type: 'string',\n },\n {\n internalType: 'string',\n name: 'info',\n type: 'string',\n },\n {\n internalType: 'bytes',\n name: 'signature',\n type: 'bytes',\n },\n ],\n name: 'createNft',\n outputs: [],\n stateMutability: 'nonpayable',\n type: 'function',\n },\n {\n inputs: [\n {\n internalType: 'address',\n name: 'owner',\n type: 'address',\n },\n {\n internalType: 'uint256',\n name: 'amount',\n type: 'uint256',\n },\n {\n internalType: 'uint256',\n name: 'nftId',\n type: 'uint256',\n },\n {\n internalType: 'string',\n name: 'source',\n type: 'string',\n },\n {\n internalType: 'string',\n name: 'limitType',\n type: 'string',\n },\n {\n internalType: 'string',\n name: 'info',\n type: 'string',\n },\n {\n internalType: 'string',\n name: 'box',\n type: 'string',\n },\n {\n internalType: 'bytes',\n name: 'signature',\n type: 'bytes',\n },\n ],\n name: 'createNft4Box',\n outputs: [],\n stateMutability: 'nonpayable',\n type: 'function',\n },\n {\n inputs: [\n {\n internalType: 'uint128',\n name: 'slotid',\n type: 'uint128',\n },\n {\n internalType: 'uint256',\n name: 'tokenId1',\n type: 'uint256',\n },\n ],\n name: 'createNftPackageOne',\n outputs: [],\n stateMutability: 'nonpayable',\n type: 'function',\n },\n {\n inputs: [\n {\n internalType: 'uint128',\n name: 'slotid',\n type: 'uint128',\n },\n {\n internalType: 'uint256',\n name: 'tokenId1',\n type: 'uint256',\n },\n {\n internalType: 'address',\n name: 'tokenType2',\n type: 'address',\n },\n {\n internalType: 'uint256',\n name: 'tokenId2',\n type: 'uint256',\n },\n ],\n name: 'createNftPackageTwo',\n outputs: [],\n stateMutability: 'nonpayable',\n type: 'function',\n },\n {\n inputs: [\n {\n internalType: 'uint256',\n name: 'tokenId',\n type: 'uint256',\n },\n {\n internalType: 'uint256',\n name: 'startingPrice',\n type: 'uint256',\n },\n {\n internalType: 'uint256',\n name: 'endingPrice',\n type: 'uint256',\n },\n {\n internalType: 'uint256',\n name: 'duration',\n type: 'uint256',\n },\n ],\n name: 'createSaleAuction',\n outputs: [],\n stateMutability: 'nonpayable',\n type: 'function',\n },\n {\n inputs: [\n {\n internalType: 'uint256',\n name: 'tokenId',\n type: 'uint256',\n },\n ],\n name: 'getApproved',\n outputs: [\n {\n internalType: 'address',\n name: '',\n type: 'address',\n },\n ],\n stateMutability: 'view',\n type: 'function',\n },\n {\n inputs: [],\n name: 'getBalance',\n outputs: [\n {\n internalType: 'uint256',\n name: '',\n type: 'uint256',\n },\n ],\n stateMutability: 'view',\n type: 'function',\n },\n {\n inputs: [\n {\n internalType: 'string',\n name: 'source',\n type: 'string',\n },\n ],\n name: 'getLimit',\n outputs: [\n {\n internalType: 'uint256',\n name: '',\n type: 'uint256',\n },\n ],\n stateMutability: 'view',\n type: 'function',\n },\n {\n inputs: [\n {\n internalType: 'bytes32',\n name: 'role',\n type: 'bytes32',\n },\n ],\n name: 'getRoleAdmin',\n outputs: [\n {\n internalType: 'bytes32',\n name: '',\n type: 'bytes32',\n },\n ],\n stateMutability: 'view',\n type: 'function',\n },\n {\n inputs: [\n {\n internalType: 'bytes32',\n name: 'role',\n type: 'bytes32',\n },\n {\n internalType: 'address',\n name: 'account',\n type: 'address',\n },\n ],\n name: 'grantRole',\n outputs: [],\n stateMutability: 'nonpayable',\n type: 'function',\n },\n {\n inputs: [\n {\n internalType: 'bytes32',\n name: 'role',\n type: 'bytes32',\n },\n {\n internalType: 'address',\n name: 'account',\n type: 'address',\n },\n ],\n name: 'hasRole',\n outputs: [\n {\n internalType: 'bool',\n name: '',\n type: 'bool',\n },\n ],\n stateMutability: 'view',\n type: 'function',\n },\n {\n inputs: [\n {\n internalType: 'string',\n name: 'name_',\n type: 'string',\n },\n {\n internalType: 'string',\n name: 'symbol_',\n type: 'string',\n },\n {\n internalType: 'uint256',\n name: 'minPrice_',\n type: 'uint256',\n },\n {\n internalType: 'address',\n name: 'tokenAddress_',\n type: 'address',\n },\n {\n internalType: 'address',\n name: 'signer_',\n type: 'address',\n },\n ],\n name: 'initialize',\n outputs: [],\n stateMutability: 'nonpayable',\n type: 'function',\n },\n {\n inputs: [\n {\n internalType: 'address',\n name: 'owner',\n type: 'address',\n },\n {\n internalType: 'address',\n name: 'operator',\n type: 'address',\n },\n ],\n name: 'isApprovedForAll',\n outputs: [\n {\n internalType: 'bool',\n name: '',\n type: 'bool',\n },\n ],\n stateMutability: 'view',\n type: 'function',\n },\n {\n inputs: [],\n name: 'mergerAddr',\n outputs: [\n {\n internalType: 'address',\n name: '',\n type: 'address',\n },\n ],\n stateMutability: 'view',\n type: 'function',\n },\n {\n inputs: [],\n name: 'minPrice',\n outputs: [\n {\n internalType: 'uint256',\n name: '',\n type: 'uint256',\n },\n ],\n stateMutability: 'view',\n type: 'function',\n },\n {\n inputs: [],\n name: 'name',\n outputs: [\n {\n internalType: 'string',\n name: '',\n type: 'string',\n },\n ],\n stateMutability: 'view',\n type: 'function',\n },\n {\n inputs: [],\n name: 'nextTokenId',\n outputs: [\n {\n internalType: 'uint256',\n name: '',\n type: 'uint256',\n },\n ],\n stateMutability: 'view',\n type: 'function',\n },\n {\n inputs: [\n {\n internalType: 'uint256',\n name: 'tokenId',\n type: 'uint256',\n },\n ],\n name: 'ownerOf',\n outputs: [\n {\n internalType: 'address',\n name: '',\n type: 'address',\n },\n ],\n stateMutability: 'view',\n type: 'function',\n },\n {\n inputs: [],\n name: 'pause',\n outputs: [],\n stateMutability: 'nonpayable',\n type: 'function',\n },\n {\n inputs: [],\n name: 'paused',\n outputs: [\n {\n internalType: 'bool',\n name: '',\n type: 'bool',\n },\n ],\n stateMutability: 'view',\n type: 'function',\n },\n {\n inputs: [\n {\n internalType: 'bytes32',\n name: 'role',\n type: 'bytes32',\n },\n {\n internalType: 'address',\n name: 'account',\n type: 'address',\n },\n ],\n name: 'renounceRole',\n outputs: [],\n stateMutability: 'nonpayable',\n type: 'function',\n },\n {\n inputs: [\n {\n internalType: 'bytes32',\n name: 'role',\n type: 'bytes32',\n },\n {\n internalType: 'address',\n name: 'account',\n type: 'address',\n },\n ],\n name: 'revokeRole',\n outputs: [],\n stateMutability: 'nonpayable',\n type: 'function',\n },\n {\n inputs: [\n {\n internalType: 'address',\n name: 'from',\n type: 'address',\n },\n {\n internalType: 'address',\n name: 'to',\n type: 'address',\n },\n {\n internalType: 'uint256',\n name: 'tokenId',\n type: 'uint256',\n },\n ],\n name: 'safeTransferFrom',\n outputs: [],\n stateMutability: 'nonpayable',\n type: 'function',\n },\n {\n inputs: [\n {\n internalType: 'address',\n name: 'from',\n type: 'address',\n },\n {\n internalType: 'address',\n name: 'to',\n type: 'address',\n },\n {\n internalType: 'uint256',\n name: 'tokenId',\n type: 'uint256',\n },\n {\n internalType: 'bytes',\n name: '_data',\n type: 'bytes',\n },\n ],\n name: 'safeTransferFrom',\n outputs: [],\n stateMutability: 'nonpayable',\n type: 'function',\n },\n {\n inputs: [],\n name: 'saleAuctionAddr',\n outputs: [\n {\n internalType: 'address',\n name: '',\n type: 'address',\n },\n ],\n stateMutability: 'view',\n type: 'function',\n },\n {\n inputs: [\n {\n internalType: 'address',\n name: 'operator',\n type: 'address',\n },\n {\n internalType: 'bool',\n name: 'approved',\n type: 'bool',\n },\n ],\n name: 'setApprovalForAll',\n outputs: [],\n stateMutability: 'nonpayable',\n type: 'function',\n },\n {\n inputs: [\n {\n internalType: 'address',\n name: 'address_',\n type: 'address',\n },\n ],\n name: 'setBoxAddress',\n outputs: [],\n stateMutability: 'nonpayable',\n type: 'function',\n },\n {\n inputs: [\n {\n internalType: 'uint256',\n name: 'limit',\n type: 'uint256',\n },\n {\n internalType: 'bytes32[]',\n name: 'sources',\n type: 'bytes32[]',\n },\n ],\n name: 'setLimit',\n outputs: [],\n stateMutability: 'nonpayable',\n type: 'function',\n },\n {\n inputs: [\n {\n internalType: 'address',\n name: 'address_',\n type: 'address',\n },\n ],\n name: 'setMergerAddress',\n outputs: [],\n stateMutability: 'nonpayable',\n type: 'function',\n },\n {\n inputs: [\n {\n internalType: 'address',\n name: 'address_',\n type: 'address',\n },\n ],\n name: 'setSaleAuctionAddress',\n outputs: [],\n stateMutability: 'nonpayable',\n type: 'function',\n },\n {\n inputs: [\n {\n internalType: 'bytes4',\n name: 'interfaceId',\n type: 'bytes4',\n },\n ],\n name: 'supportsInterface',\n outputs: [\n {\n internalType: 'bool',\n name: '',\n type: 'bool',\n },\n ],\n stateMutability: 'view',\n type: 'function',\n },\n {\n inputs: [],\n name: 'symbol',\n outputs: [\n {\n internalType: 'string',\n name: '',\n type: 'string',\n },\n ],\n stateMutability: 'view',\n type: 'function',\n },\n {\n inputs: [\n {\n internalType: 'uint256',\n name: 'tokenId',\n type: 'uint256',\n },\n ],\n name: 'tokenURI',\n outputs: [\n {\n internalType: 'string',\n name: '',\n type: 'string',\n },\n ],\n stateMutability: 'view',\n type: 'function',\n },\n {\n inputs: [\n {\n internalType: 'address',\n name: 'from',\n type: 'address',\n },\n {\n internalType: 'address',\n name: 'to',\n type: 'address',\n },\n {\n internalType: 'uint256',\n name: 'tokenId',\n type: 'uint256',\n },\n ],\n name: 'transferFrom',\n outputs: [],\n stateMutability: 'nonpayable',\n type: 'function',\n },\n {\n inputs: [],\n name: 'unpause',\n outputs: [],\n stateMutability: 'nonpayable',\n type: 'function',\n },\n {\n inputs: [\n {\n internalType: 'uint256',\n name: 'price',\n type: 'uint256',\n },\n ],\n name: 'updatePrice',\n outputs: [],\n stateMutability: 'nonpayable',\n type: 'function',\n },\n {\n inputs: [\n {\n internalType: 'address',\n name: 'newImplementation',\n type: 'address',\n },\n ],\n name: 'upgradeTo',\n outputs: [],\n stateMutability: 'nonpayable',\n type: 'function',\n },\n {\n inputs: [\n {\n internalType: 'address',\n name: 'newImplementation',\n type: 'address',\n },\n {\n internalType: 'bytes',\n name: 'data',\n type: 'bytes',\n },\n ],\n name: 'upgradeToAndCall',\n outputs: [],\n stateMutability: 'payable',\n type: 'function',\n },\n {\n inputs: [],\n name: 'withdrawBalance',\n outputs: [],\n stateMutability: 'nonpayable',\n type: 'function',\n },\n]\n\nexport const marketAbi = [\n {\n inputs: [\n {\n internalType: 'address',\n name: '_tokenAddress',\n type: 'address',\n },\n {\n internalType: 'address',\n name: '_nftAddr',\n type: 'address',\n },\n {\n internalType: 'uint256',\n name: '_cut',\n type: 'uint256',\n },\n ],\n stateMutability: 'nonpayable',\n type: 'constructor',\n },\n {\n anonymous: false,\n inputs: [\n {\n indexed: false,\n internalType: 'uint256',\n name: 'orderId',\n type: 'uint256',\n },\n {\n indexed: false,\n internalType: 'uint256',\n name: 'tokenId',\n type: 'uint256',\n },\n {\n indexed: false,\n internalType: 'address',\n name: 'nftAddress',\n type: 'address',\n },\n ],\n name: 'AuctionCancelled',\n type: 'event',\n },\n {\n anonymous: false,\n inputs: [\n {\n indexed: false,\n internalType: 'uint256',\n name: 'orderId',\n type: 'uint256',\n },\n {\n indexed: false,\n internalType: 'uint256',\n name: 'tokenId',\n type: 'uint256',\n },\n {\n indexed: false,\n internalType: 'uint256',\n name: 'startingPrice',\n type: 'uint256',\n },\n {\n indexed: false,\n internalType: 'uint256',\n name: 'endingPrice',\n type: 'uint256',\n },\n {\n indexed: false,\n internalType: 'uint256',\n name: 'endAt',\n type: 'uint256',\n },\n {\n indexed: false,\n internalType: 'address',\n name: 'nftAddress',\n type: 'address',\n },\n {\n indexed: false,\n internalType: 'address',\n name: 'seller',\n type: 'address',\n },\n ],\n name: 'AuctionCreated',\n type: 'event',\n },\n {\n anonymous: false,\n inputs: [\n {\n indexed: false,\n internalType: 'uint256',\n name: 'orderId',\n type: 'uint256',\n },\n {\n indexed: false,\n internalType: 'uint256',\n name: 'tokenId',\n type: 'uint256',\n },\n {\n indexed: false,\n internalType: 'uint256',\n name: 'totalPrice',\n type: 'uint256',\n },\n {\n indexed: false,\n internalType: 'address',\n name: 'winner',\n type: 'address',\n },\n {\n indexed: false,\n internalType: 'address',\n name: 'nftAddress',\n type: 'address',\n },\n ],\n name: 'AuctionSuccessful',\n type: 'event',\n },\n {\n anonymous: false,\n inputs: [],\n name: 'Pause',\n type: 'event',\n },\n {\n anonymous: false,\n inputs: [],\n name: 'Unpause',\n type: 'event',\n },\n {\n inputs: [],\n name: 'averageGen0SalePrice',\n outputs: [\n {\n internalType: 'uint256',\n name: '',\n type: 'uint256',\n },\n ],\n stateMutability: 'view',\n type: 'function',\n },\n {\n inputs: [\n {\n internalType: 'uint256',\n name: '_tokenId',\n type: 'uint256',\n },\n {\n internalType: 'uint256',\n name: '_amount',\n type: 'uint256',\n },\n ],\n name: 'bid',\n outputs: [],\n stateMutability: 'nonpayable',\n type: 'function',\n },\n {\n inputs: [\n {\n internalType: 'uint256',\n name: '_tokenId',\n type: 'uint256',\n },\n ],\n name: 'cancelAuction',\n outputs: [],\n stateMutability: 'nonpayable',\n type: 'function',\n },\n {\n inputs: [\n {\n internalType: 'uint256',\n name: '_tokenId',\n type: 'uint256',\n },\n ],\n name: 'cancelAuctionWhenPaused',\n outputs: [],\n stateMutability: 'nonpayable',\n type: 'function',\n },\n {\n inputs: [\n {\n internalType: 'uint256',\n name: '_cut',\n type: 'uint256',\n },\n ],\n name: 'changeCut',\n outputs: [],\n stateMutability: 'nonpayable',\n type: 'function',\n },\n {\n inputs: [\n {\n internalType: 'uint256',\n name: '_tokenId',\n type: 'uint256',\n },\n {\n internalType: 'uint256',\n name: '_startingPrice',\n type: 'uint256',\n },\n {\n internalType: 'uint256',\n name: '_endingPrice',\n type: 'uint256',\n },\n {\n internalType: 'uint256',\n name: '_duration',\n type: 'uint256',\n },\n {\n internalType: 'address',\n name: '_seller',\n type: 'address',\n },\n ],\n name: 'createAuction',\n outputs: [],\n stateMutability: 'nonpayable',\n type: 'function',\n },\n {\n inputs: [],\n name: 'gen0SaleCount',\n outputs: [\n {\n internalType: 'uint256',\n name: '',\n type: 'uint256',\n },\n ],\n stateMutability: 'view',\n type: 'function',\n },\n {\n inputs: [\n {\n internalType: 'uint256',\n name: '_tokenId',\n type: 'uint256',\n },\n ],\n name: 'getAuction',\n outputs: [\n {\n internalType: 'address',\n name: 'seller',\n type: 'address',\n },\n {\n internalType: 'uint256',\n name: 'startingPrice',\n type: 'uint256',\n },\n {\n internalType: 'uint256',\n name: 'endingPrice',\n type: 'uint256',\n },\n {\n internalType: 'uint256',\n name: 'duration',\n type: 'uint256',\n },\n {\n internalType: 'uint256',\n name: 'startedAt',\n type: 'uint256',\n },\n ],\n stateMutability: 'view',\n type: 'function',\n },\n {\n inputs: [],\n name: 'getBalance',\n outputs: [\n {\n internalType: 'uint256',\n name: '',\n type: 'uint256',\n },\n ],\n stateMutability: 'view',\n type: 'function',\n },\n {\n inputs: [\n {\n internalType: 'uint256',\n name: '_tokenId',\n type: 'uint256',\n },\n ],\n name: 'getCurrentPrice',\n outputs: [\n {\n internalType: 'uint256',\n name: '',\n type: 'uint256',\n },\n ],\n stateMutability: 'view',\n type: 'function',\n },\n {\n inputs: [],\n name: 'isSaleClockAuction',\n outputs: [\n {\n internalType: 'bool',\n name: '',\n type: 'bool',\n },\n ],\n stateMutability: 'view',\n type: 'function',\n },\n {\n inputs: [\n {\n internalType: 'uint256',\n name: '',\n type: 'uint256',\n },\n ],\n name: 'lastGen0SalePrices',\n outputs: [\n {\n internalType: 'uint256',\n name: '',\n type: 'uint256',\n },\n ],\n stateMutability: 'view',\n type: 'function',\n },\n {\n inputs: [],\n name: 'nextOrderId',\n outputs: [\n {\n internalType: 'uint256',\n name: '',\n type: 'uint256',\n },\n ],\n stateMutability: 'view',\n type: 'function',\n },\n {\n inputs: [],\n name: 'nonFungibleContract',\n outputs: [\n {\n internalType: 'contract IERC721',\n name: '',\n type: 'address',\n },\n ],\n stateMutability: 'view',\n type: 'function',\n },\n {\n inputs: [],\n name: 'owner',\n outputs: [\n {\n internalType: 'address',\n name: '',\n type: 'address',\n },\n ],\n stateMutability: 'view',\n type: 'function',\n },\n {\n inputs: [],\n name: 'ownerCut',\n outputs: [\n {\n internalType: 'uint256',\n name: '',\n type: 'uint256',\n },\n ],\n stateMutability: 'view',\n type: 'function',\n },\n {\n inputs: [],\n name: 'pause',\n outputs: [\n {\n internalType: 'bool',\n name: '',\n type: 'bool',\n },\n ],\n stateMutability: 'nonpayable',\n type: 'function',\n },\n {\n inputs: [],\n name: 'paused',\n outputs: [\n {\n internalType: 'bool',\n name: '',\n type: 'bool',\n },\n ],\n stateMutability: 'view',\n type: 'function',\n },\n {\n inputs: [],\n name: 'tokenAddress',\n outputs: [\n {\n internalType: 'address',\n name: '',\n type: 'address',\n },\n ],\n stateMutability: 'view',\n type: 'function',\n },\n {\n inputs: [\n {\n internalType: 'address',\n name: 'newOwner',\n type: 'address',\n },\n ],\n name: 'transferOwnership',\n outputs: [],\n stateMutability: 'nonpayable',\n type: 'function',\n },\n {\n inputs: [],\n name: 'unpause',\n outputs: [\n {\n internalType: 'bool',\n name: '',\n type: 'bool',\n },\n ],\n stateMutability: 'nonpayable',\n type: 'function',\n },\n {\n inputs: [],\n name: 'withdrawBalance',\n outputs: [],\n stateMutability: 'nonpayable',\n type: 'function',\n },\n]\n\nexport const exhibitionAbi = [\n {\n anonymous: false,\n inputs: [\n {\n indexed: false,\n internalType: 'address',\n name: 'previousAdmin',\n type: 'address',\n },\n {\n indexed: false,\n internalType: 'address',\n name: 'newAdmin',\n type: 'address',\n },\n ],\n name: 'AdminChanged',\n type: 'event',\n },\n {\n anonymous: false,\n inputs: [\n {\n indexed: true,\n internalType: 'address',\n name: 'beacon',\n type: 'address',\n },\n ],\n name: 'BeaconUpgraded',\n type: 'event',\n },\n {\n anonymous: false,\n inputs: [\n {\n indexed: false,\n internalType: 'uint256',\n name: 'orderId',\n type: 'uint256',\n },\n {\n indexed: false,\n internalType: 'address',\n name: 'tokenType1',\n type: 'address',\n },\n {\n indexed: false,\n internalType: 'uint256',\n name: 'tokenId1',\n type: 'uint256',\n },\n {\n indexed: false,\n internalType: 'address',\n name: 'tokenType2',\n type: 'address',\n },\n {\n indexed: false,\n internalType: 'uint256',\n name: 'tokenId2',\n type: 'uint256',\n },\n {\n indexed: false,\n internalType: 'address',\n name: 'joiner',\n type: 'address',\n },\n {\n indexed: false,\n internalType: 'uint256',\n name: 'reward',\n type: 'uint256',\n },\n ],\n name: 'JoinPackageSplit',\n type: 'event',\n },\n {\n anonymous: false,\n inputs: [\n {\n indexed: false,\n internalType: 'uint256',\n name: 'orderid',\n type: 'uint256',\n },\n {\n indexed: false,\n internalType: 'address',\n name: 'tokenType1',\n type: 'address',\n },\n {\n indexed: false,\n internalType: 'uint256',\n name: 'tokenId1',\n type: 'uint256',\n },\n {\n indexed: false,\n internalType: 'address',\n name: 'tokenType2',\n type: 'address',\n },\n {\n indexed: false,\n internalType: 'uint256',\n name: 'tokenId2',\n type: 'uint256',\n },\n {\n indexed: false,\n internalType: 'uint256',\n name: 'slot',\n type: 'uint256',\n },\n {\n indexed: false,\n internalType: 'uint256',\n name: 'price',\n type: 'uint256',\n },\n {\n indexed: false,\n internalType: 'address',\n name: 'joiner',\n type: 'address',\n },\n {\n indexed: false,\n internalType: 'uint256',\n name: 'reward',\n type: 'uint256',\n },\n {\n indexed: false,\n internalType: 'uint256',\n name: 'time',\n type: 'uint256',\n },\n ],\n name: 'JoinPackageTwoCreated',\n type: 'event',\n },\n {\n anonymous: false,\n inputs: [\n {\n indexed: false,\n internalType: 'address',\n name: 'account',\n type: 'address',\n },\n ],\n name: 'Paused',\n type: 'event',\n },\n {\n anonymous: false,\n inputs: [\n {\n indexed: true,\n internalType: 'bytes32',\n name: 'role',\n type: 'bytes32',\n },\n {\n indexed: true,\n internalType: 'bytes32',\n name: 'previousAdminRole',\n type: 'bytes32',\n },\n {\n indexed: true,\n internalType: 'bytes32',\n name: 'newAdminRole',\n type: 'bytes32',\n },\n ],\n name: 'RoleAdminChanged',\n type: 'event',\n },\n {\n anonymous: false,\n inputs: [\n {\n indexed: true,\n internalType: 'bytes32',\n name: 'role',\n type: 'bytes32',\n },\n {\n indexed: true,\n internalType: 'address',\n name: 'account',\n type: 'address',\n },\n {\n indexed: true,\n internalType: 'address',\n name: 'sender',\n type: 'address',\n },\n ],\n name: 'RoleGranted',\n type: 'event',\n },\n {\n anonymous: false,\n inputs: [\n {\n indexed: true,\n internalType: 'bytes32',\n name: 'role',\n type: 'bytes32',\n },\n {\n indexed: true,\n internalType: 'address',\n name: 'account',\n type: 'address',\n },\n {\n indexed: true,\n internalType: 'address',\n name: 'sender',\n type: 'address',\n },\n ],\n name: 'RoleRevoked',\n type: 'event',\n },\n {\n anonymous: false,\n inputs: [\n {\n indexed: true,\n internalType: 'address',\n name: 'owner',\n type: 'address',\n },\n {\n indexed: false,\n internalType: 'uint256',\n name: 'amount',\n type: 'uint256',\n },\n {\n indexed: false,\n internalType: 'string',\n name: 'data',\n type: 'string',\n },\n ],\n name: 'TokenIn',\n type: 'event',\n },\n {\n anonymous: false,\n inputs: [\n {\n indexed: true,\n internalType: 'address',\n name: 'owner',\n type: 'address',\n },\n {\n indexed: false,\n internalType: 'uint256',\n name: 'amount',\n type: 'uint256',\n },\n {\n indexed: false,\n internalType: 'string',\n name: 'data',\n type: 'string',\n },\n ],\n name: 'TokenOut',\n type: 'event',\n },\n {\n anonymous: false,\n inputs: [\n {\n indexed: false,\n internalType: 'address',\n name: 'account',\n type: 'address',\n },\n ],\n name: 'Unpaused',\n type: 'event',\n },\n {\n anonymous: false,\n inputs: [\n {\n indexed: true,\n internalType: 'address',\n name: 'implementation',\n type: 'address',\n },\n ],\n name: 'Upgraded',\n type: 'event',\n },\n {\n inputs: [],\n name: 'DEFAULT_ADMIN_ROLE',\n outputs: [\n {\n internalType: 'bytes32',\n name: '',\n type: 'bytes32',\n },\n ],\n stateMutability: 'view',\n type: 'function',\n },\n {\n inputs: [],\n name: 'WITHDRAW_ROLE',\n outputs: [\n {\n internalType: 'bytes32',\n name: '',\n type: 'bytes32',\n },\n ],\n stateMutability: 'view',\n type: 'function',\n },\n {\n inputs: [],\n name: 'dailyLimitation',\n outputs: [\n {\n internalType: 'uint256',\n name: '',\n type: 'uint256',\n },\n ],\n stateMutability: 'view',\n type: 'function',\n },\n {\n inputs: [],\n name: 'expireDays',\n outputs: [\n {\n internalType: 'uint32',\n name: '',\n type: 'uint32',\n },\n ],\n stateMutability: 'view',\n type: 'function',\n },\n {\n inputs: [\n {\n internalType: 'uint8',\n name: 'slot_',\n type: 'uint8',\n },\n ],\n name: 'finishJoining',\n outputs: [],\n stateMutability: 'nonpayable',\n type: 'function',\n },\n {\n inputs: [],\n name: 'getBalance',\n outputs: [\n {\n internalType: 'uint256',\n name: '',\n type: 'uint256',\n },\n ],\n stateMutability: 'view',\n type: 'function',\n },\n {\n inputs: [],\n name: 'getPool',\n outputs: [\n {\n internalType: 'uint256',\n name: '',\n type: 'uint256',\n },\n {\n internalType: 'uint256',\n name: '',\n type: 'uint256',\n },\n {\n internalType: 'uint256',\n name: '',\n type: 'uint256',\n },\n ],\n stateMutability: 'view',\n type: 'function',\n },\n {\n inputs: [\n {\n internalType: 'bytes32',\n name: 'role',\n type: 'bytes32',\n },\n ],\n name: 'getRoleAdmin',\n outputs: [\n {\n internalType: 'bytes32',\n name: '',\n type: 'bytes32',\n },\n ],\n stateMutability: 'view',\n type: 'function',\n },\n {\n inputs: [],\n name: 'getWithdrawAddress',\n outputs: [\n {\n internalType: 'address',\n name: '',\n type: 'address',\n },\n ],\n stateMutability: 'view',\n type: 'function',\n },\n {\n inputs: [\n {\n internalType: 'bytes32',\n name: 'role',\n type: 'bytes32',\n },\n {\n internalType: 'address',\n name: 'account',\n type: 'address',\n },\n ],\n name: 'grantRole',\n outputs: [],\n stateMutability: 'nonpayable',\n type: 'function',\n },\n {\n inputs: [\n {\n internalType: 'bytes32',\n name: 'role',\n type: 'bytes32',\n },\n {\n internalType: 'address',\n name: 'account',\n type: 'address',\n },\n ],\n name: 'hasRole',\n outputs: [\n {\n internalType: 'bool',\n name: '',\n type: 'bool',\n },\n ],\n stateMutability: 'view',\n type: 'function',\n },\n {\n inputs: [\n {\n internalType: 'address',\n name: 'type1_',\n type: 'address',\n },\n {\n internalType: 'address',\n name: 'type2_',\n type: 'address',\n },\n {\n internalType: 'uint256',\n name: 'mergePrice_',\n type: 'uint256',\n },\n {\n internalType: 'address',\n name: 'tokenAddress_',\n type: 'address',\n },\n {\n internalType: 'uint256',\n name: 'percent_',\n type: 'uint256',\n },\n {\n internalType: 'uint32',\n name: 'expireDays_',\n type: 'uint32',\n },\n {\n internalType: 'uint32',\n name: 'maxSlot_',\n type: 'uint32',\n },\n {\n internalType: 'uint256',\n name: 'dailyLimitation_',\n type: 'uint256',\n },\n ],\n name: 'initialize',\n outputs: [],\n stateMutability: 'nonpayable',\n type: 'function',\n },\n {\n inputs: [\n {\n internalType: 'uint32',\n name: 'tokenId1_',\n type: 'uint32',\n },\n {\n internalType: 'uint32',\n name: 'tokenId2_',\n type: 'uint32',\n },\n {\n internalType: 'uint8',\n name: 'slot_',\n type: 'uint8',\n },\n ],\n name: 'joinTwo',\n outputs: [],\n stateMutability: 'nonpayable',\n type: 'function',\n },\n {\n inputs: [],\n name: 'maxSlot',\n outputs: [\n {\n internalType: 'uint32',\n name: '',\n type: 'uint32',\n },\n ],\n stateMutability: 'view',\n type: 'function',\n },\n {\n inputs: [\n {\n internalType: 'uint8',\n name: '',\n type: 'uint8',\n },\n ],\n name: 'mergePrices',\n outputs: [\n {\n internalType: 'uint256',\n name: '',\n type: 'uint256',\n },\n ],\n stateMutability: 'view',\n type: 'function',\n },\n {\n inputs: [],\n name: 'nextOrderId',\n outputs: [\n {\n internalType: 'uint256',\n name: '',\n type: 'uint256',\n },\n ],\n stateMutability: 'view',\n type: 'function',\n },\n {\n inputs: [],\n name: 'pause',\n outputs: [],\n stateMutability: 'nonpayable',\n type: 'function',\n },\n {\n inputs: [],\n name: 'paused',\n outputs: [\n {\n internalType: 'bool',\n name: '',\n type: 'bool',\n },\n ],\n stateMutability: 'view',\n type: 'function',\n },\n {\n inputs: [],\n name: 'percent',\n outputs: [\n {\n internalType: 'uint256',\n name: '',\n type: 'uint256',\n },\n ],\n stateMutability: 'view',\n type: 'function',\n },\n {\n inputs: [],\n name: 'percentDecimal',\n outputs: [\n {\n internalType: 'uint256',\n name: '',\n type: 'uint256',\n },\n ],\n stateMutability: 'view',\n type: 'function',\n },\n {\n inputs: [\n {\n internalType: 'bytes32',\n name: 'role',\n type: 'bytes32',\n },\n {\n internalType: 'address',\n name: 'account',\n type: 'address',\n },\n ],\n name: 'renounceRole',\n outputs: [],\n stateMutability: 'nonpayable',\n type: 'function',\n },\n {\n inputs: [\n {\n internalType: 'bytes32',\n name: 'role',\n type: 'bytes32',\n },\n {\n internalType: 'address',\n name: 'account',\n type: 'address',\n },\n ],\n name: 'revokeRole',\n outputs: [],\n stateMutability: 'nonpayable',\n type: 'function',\n },\n {\n inputs: [\n {\n internalType: 'uint256',\n name: 'mergePrice_',\n type: 'uint256',\n },\n ],\n name: 'setMergerPrice',\n outputs: [],\n stateMutability: 'nonpayable',\n type: 'function',\n },\n {\n inputs: [\n {\n internalType: 'uint256',\n name: 'percent_',\n type: 'uint256',\n },\n ],\n name: 'setPercent',\n outputs: [],\n stateMutability: 'nonpayable',\n type: 'function',\n },\n {\n inputs: [\n {\n internalType: 'address',\n name: 'type_',\n type: 'address',\n },\n ],\n name: 'setToken1Type',\n outputs: [],\n stateMutability: 'nonpayable',\n type: 'function',\n },\n {\n inputs: [\n {\n internalType: 'address',\n name: 'type_',\n type: 'address',\n },\n ],\n name: 'setToken2Type',\n outputs: [],\n stateMutability: 'nonpayable',\n type: 'function',\n },\n {\n inputs: [\n {\n internalType: 'address',\n name: 'wdAddress_',\n type: 'address',\n },\n ],\n name: 'setWithdrawAddress',\n outputs: [],\n stateMutability: 'nonpayable',\n type: 'function',\n },\n {\n inputs: [\n {\n internalType: 'bytes4',\n name: 'interfaceId',\n type: 'bytes4',\n },\n ],\n name: 'supportsInterface',\n outputs: [\n {\n internalType: 'bool',\n name: '',\n type: 'bool',\n },\n ],\n stateMutability: 'view',\n type: 'function',\n },\n {\n inputs: [],\n name: 'token1Type',\n outputs: [\n {\n internalType: 'address',\n name: '',\n type: 'address',\n },\n ],\n stateMutability: 'view',\n type: 'function',\n },\n {\n inputs: [],\n name: 'token2Type',\n outputs: [\n {\n internalType: 'address',\n name: '',\n type: 'address',\n },\n ],\n stateMutability: 'view',\n type: 'function',\n },\n {\n inputs: [],\n name: 'tokenAddress',\n outputs: [\n {\n internalType: 'address',\n name: '',\n type: 'address',\n },\n ],\n stateMutability: 'view',\n type: 'function',\n },\n {\n inputs: [],\n name: 'unpause',\n outputs: [],\n stateMutability: 'nonpayable',\n type: 'function',\n },\n {\n inputs: [\n {\n internalType: 'address',\n name: 'newImplementation',\n type: 'address',\n },\n ],\n name: 'upgradeTo',\n outputs: [],\n stateMutability: 'nonpayable',\n type: 'function',\n },\n {\n inputs: [\n {\n internalType: 'address',\n name: 'newImplementation',\n type: 'address',\n },\n {\n internalType: 'bytes',\n name: 'data',\n type: 'bytes',\n },\n ],\n name: 'upgradeToAndCall',\n outputs: [],\n stateMutability: 'payable',\n type: 'function',\n },\n {\n inputs: [\n {\n internalType: 'uint256',\n name: '_amount',\n type: 'uint256',\n },\n {\n internalType: 'string',\n name: 'data',\n type: 'string',\n },\n ],\n name: 'useToken',\n outputs: [],\n stateMutability: 'nonpayable',\n type: 'function',\n },\n {\n inputs: [],\n name: 'withdrawBalance',\n outputs: [],\n stateMutability: 'nonpayable',\n type: 'function',\n },\n]\n\nexport const seasonAbi = [\n {\n anonymous: false,\n inputs: [\n {\n indexed: false,\n internalType: 'address',\n name: 'previousAdmin',\n type: 'address',\n },\n {\n indexed: false,\n internalType: 'address',\n name: 'newAdmin',\n type: 'address',\n },\n ],\n name: 'AdminChanged',\n type: 'event',\n },\n {\n anonymous: false,\n inputs: [\n {\n indexed: true,\n internalType: 'address',\n name: 'beacon',\n type: 'address',\n },\n ],\n name: 'BeaconUpgraded',\n type: 'event',\n },\n {\n anonymous: false,\n inputs: [\n {\n indexed: false,\n internalType: 'address',\n name: 'account',\n type: 'address',\n },\n ],\n name: 'Paused',\n type: 'event',\n },\n {\n anonymous: false,\n inputs: [\n {\n indexed: true,\n internalType: 'bytes32',\n name: 'role',\n type: 'bytes32',\n },\n {\n indexed: true,\n internalType: 'bytes32',\n name: 'previousAdminRole',\n type: 'bytes32',\n },\n {\n indexed: true,\n internalType: 'bytes32',\n name: 'newAdminRole',\n type: 'bytes32',\n },\n ],\n name: 'RoleAdminChanged',\n type: 'event',\n },\n {\n anonymous: false,\n inputs: [\n {\n indexed: true,\n internalType: 'bytes32',\n name: 'role',\n type: 'bytes32',\n },\n {\n indexed: true,\n internalType: 'address',\n name: 'account',\n type: 'address',\n },\n {\n indexed: true,\n internalType: 'address',\n name: 'sender',\n type: 'address',\n },\n ],\n name: 'RoleGranted',\n type: 'event',\n },\n {\n anonymous: false,\n inputs: [\n {\n indexed: true,\n internalType: 'bytes32',\n name: 'role',\n type: 'bytes32',\n },\n {\n indexed: true,\n internalType: 'address',\n name: 'account',\n type: 'address',\n },\n {\n indexed: true,\n internalType: 'address',\n name: 'sender',\n type: 'address',\n },\n ],\n name: 'RoleRevoked',\n type: 'event',\n },\n {\n anonymous: false,\n inputs: [\n {\n indexed: false,\n internalType: 'uint32',\n name: 'rank',\n type: 'uint32',\n },\n {\n indexed: false,\n internalType: 'address',\n name: 'tokenType1',\n type: 'address',\n },\n {\n indexed: false,\n internalType: 'uint256',\n name: 'tokenId1',\n type: 'uint256',\n },\n {\n indexed: false,\n internalType: 'address',\n name: 'tokenType2',\n type: 'address',\n },\n {\n indexed: false,\n internalType: 'uint256',\n name: 'tokenId2',\n type: 'uint256',\n },\n {\n indexed: false,\n internalType: 'address',\n name: 'joiner',\n type: 'address',\n },\n {\n indexed: false,\n internalType: 'uint256',\n name: 'reward',\n type: 'uint256',\n },\n ],\n name: 'SeasonPackageSplit',\n type: 'event',\n },\n {\n anonymous: false,\n inputs: [\n {\n indexed: false,\n internalType: 'uint32',\n name: 'rank',\n type: 'uint32',\n },\n {\n indexed: false,\n internalType: 'address',\n name: 'tokenType1',\n type: 'address',\n },\n {\n indexed: false,\n internalType: 'uint256',\n name: 'tokenId1',\n type: 'uint256',\n },\n {\n indexed: false,\n internalType: 'address',\n name: 'tokenType2',\n type: 'address',\n },\n {\n indexed: false,\n internalType: 'uint256',\n name: 'tokenId2',\n type: 'uint256',\n },\n {\n indexed: false,\n internalType: 'address',\n name: 'joiner',\n type: 'address',\n },\n {\n indexed: false,\n internalType: 'uint32',\n name: 'time',\n type: 'uint32',\n },\n {\n indexed: false,\n internalType: 'string',\n name: 'season',\n type: 'string',\n },\n {\n indexed: false,\n internalType: 'uint256',\n name: 'reward',\n type: 'uint256',\n },\n ],\n name: 'SeasonPackageTwoCreated',\n type: 'event',\n },\n {\n anonymous: false,\n inputs: [\n {\n indexed: true,\n internalType: 'address',\n name: 'owner',\n type: 'address',\n },\n {\n indexed: false,\n internalType: 'uint256',\n name: 'amount',\n type: 'uint256',\n },\n {\n indexed: false,\n internalType: 'string',\n name: 'data',\n type: 'string',\n },\n ],\n name: 'TokenIn',\n type: 'event',\n },\n {\n anonymous: false,\n inputs: [\n {\n indexed: true,\n internalType: 'address',\n name: 'owner',\n type: 'address',\n },\n {\n indexed: false,\n internalType: 'uint256',\n name: 'amount',\n type: 'uint256',\n },\n {\n indexed: false,\n internalType: 'string',\n name: 'data',\n type: 'string',\n },\n ],\n name: 'TokenOut',\n type: 'event',\n },\n {\n anonymous: false,\n inputs: [\n {\n indexed: false,\n internalType: 'address',\n name: 'account',\n type: 'address',\n },\n ],\n name: 'Unpaused',\n type: 'event',\n },\n {\n anonymous: false,\n inputs: [\n {\n indexed: true,\n internalType: 'address',\n name: 'implementation',\n type: 'address',\n },\n ],\n name: 'Upgraded',\n type: 'event',\n },\n {\n inputs: [],\n name: 'DEFAULT_ADMIN_ROLE',\n outputs: [\n {\n internalType: 'bytes32',\n name: '',\n type: 'bytes32',\n },\n ],\n stateMutability: 'view',\n type: 'function',\n },\n {\n inputs: [],\n name: 'WITHDRAW_ROLE',\n outputs: [\n {\n internalType: 'bytes32',\n name: '',\n type: 'bytes32',\n },\n ],\n stateMutability: 'view',\n type: 'function',\n },\n {\n inputs: [],\n name: 'budget',\n outputs: [\n {\n internalType: 'uint256',\n name: '',\n type: 'uint256',\n },\n ],\n stateMutability: 'view',\n type: 'function',\n },\n {\n inputs: [],\n name: 'currEventKey',\n outputs: [\n {\n internalType: 'string',\n name: '',\n type: 'string',\n },\n ],\n stateMutability: 'view',\n type: 'function',\n },\n {\n inputs: [],\n name: 'expireDate',\n outputs: [\n {\n internalType: 'uint32',\n name: '',\n type: 'uint32',\n },\n ],\n stateMutability: 'view',\n type: 'function',\n },\n {\n inputs: [],\n name: 'finishJoining',\n outputs: [],\n stateMutability: 'nonpayable',\n type: 'function',\n },\n {\n inputs: [\n {\n internalType: 'uint256',\n name: '',\n type: 'uint256',\n },\n ],\n name: 'firstPercents',\n outputs: [\n {\n internalType: 'uint32',\n name: '',\n type: 'uint32',\n },\n ],\n stateMutability: 'view',\n type: 'function',\n },\n {\n inputs: [],\n name: 'getBalance',\n outputs: [\n {\n internalType: 'uint256',\n name: '',\n type: 'uint256',\n },\n ],\n stateMutability: 'view',\n type: 'function',\n },\n {\n inputs: [\n {\n internalType: 'uint32',\n name: 'rank_',\n type: 'uint32',\n },\n ],\n name: 'getRewardByRank',\n outputs: [\n {\n internalType: 'uint256',\n name: '',\n type: 'uint256',\n },\n ],\n stateMutability: 'view',\n type: 'function',\n },\n {\n inputs: [\n {\n internalType: 'bytes32',\n name: 'role',\n type: 'bytes32',\n },\n ],\n name: 'getRoleAdmin',\n outputs: [\n {\n internalType: 'bytes32',\n name: '',\n type: 'bytes32',\n },\n ],\n stateMutability: 'view',\n type: 'function',\n },\n {\n inputs: [],\n name: 'getWithdrawAddress',\n outputs: [\n {\n internalType: 'address',\n name: '',\n type: 'address',\n },\n ],\n stateMutability: 'view',\n type: 'function',\n },\n {\n inputs: [\n {\n internalType: 'bytes32',\n name: 'role',\n type: 'bytes32',\n },\n {\n internalType: 'address',\n name: 'account',\n type: 'address',\n },\n ],\n name: 'grantRole',\n outputs: [],\n stateMutability: 'nonpayable',\n type: 'function',\n },\n {\n inputs: [\n {\n internalType: 'bytes32',\n name: 'role',\n type: 'bytes32',\n },\n {\n internalType: 'address',\n name: 'account',\n type: 'address',\n },\n ],\n name: 'hasRole',\n outputs: [\n {\n internalType: 'bool',\n name: '',\n type: 'bool',\n },\n ],\n stateMutability: 'view',\n type: 'function',\n },\n {\n inputs: [\n {\n internalType: 'string',\n name: 'eventKey_',\n type: 'string',\n },\n {\n internalType: 'address',\n name: 'type1_',\n type: 'address',\n },\n {\n internalType: 'address',\n name: 'type2_',\n type: 'address',\n },\n {\n internalType: 'address',\n name: 'tokenAddress_',\n type: 'address',\n },\n {\n internalType: 'uint32',\n name: 'validPercents_',\n type: 'uint32',\n },\n {\n internalType: 'uint32',\n name: 'secondMaxPercents_',\n type: 'uint32',\n },\n {\n internalType: 'uint32',\n name: 'expireDate_',\n type: 'uint32',\n },\n {\n internalType: 'uint32',\n name: 'startDate_',\n type: 'uint32',\n },\n ],\n name: 'initialize',\n outputs: [],\n stateMutability: 'nonpayable',\n type: 'function',\n },\n {\n inputs: [\n {\n internalType: 'uint32',\n name: 'tokenId1_',\n type: 'uint32',\n },\n {\n internalType: 'uint32',\n name: 'tokenId2_',\n type: 'uint32',\n },\n ],\n name: 'joinTwo',\n outputs: [],\n stateMutability: 'nonpayable',\n type: 'function',\n },\n {\n inputs: [],\n name: 'nextRankId',\n outputs: [\n {\n internalType: 'uint32',\n name: '',\n type: 'uint32',\n },\n ],\n stateMutability: 'view',\n type: 'function',\n },\n {\n inputs: [],\n name: 'pause',\n outputs: [],\n stateMutability: 'nonpayable',\n type: 'function',\n },\n {\n inputs: [],\n name: 'paused',\n outputs: [\n {\n internalType: 'bool',\n name: '',\n type: 'bool',\n },\n ],\n stateMutability: 'view',\n type: 'function',\n },\n {\n inputs: [],\n name: 'percentDecimal',\n outputs: [\n {\n internalType: 'uint256',\n name: '',\n type: 'uint256',\n },\n ],\n stateMutability: 'view',\n type: 'function',\n },\n {\n inputs: [\n {\n internalType: 'bytes32',\n name: 'role',\n type: 'bytes32',\n },\n {\n internalType: 'address',\n name: 'account',\n type: 'address',\n },\n ],\n name: 'renounceRole',\n outputs: [],\n stateMutability: 'nonpayable',\n type: 'function',\n },\n {\n inputs: [\n {\n internalType: 'bytes32',\n name: 'role',\n type: 'bytes32',\n },\n {\n internalType: 'address',\n name: 'account',\n type: 'address',\n },\n ],\n name: 'revokeRole',\n outputs: [],\n stateMutability: 'nonpayable',\n type: 'function',\n },\n {\n inputs: [],\n name: 'secondMaxPercents',\n outputs: [\n {\n internalType: 'uint32',\n name: '',\n type: 'uint32',\n },\n ],\n stateMutability: 'view',\n type: 'function',\n },\n {\n inputs: [],\n name: 'secondTotalPercents',\n outputs: [\n {\n internalType: 'uint32',\n name: '',\n type: 'uint32',\n },\n ],\n stateMutability: 'view',\n type: 'function',\n },\n {\n inputs: [\n {\n internalType: 'string',\n name: 'key_',\n type: 'string',\n },\n ],\n name: 'setCurrentEvent',\n outputs: [],\n stateMutability: 'nonpayable',\n type: 'function',\n },\n {\n inputs: [\n {\n internalType: 'uint32',\n name: 'expireDate_',\n type: 'uint32',\n },\n ],\n name: 'setExpireDate',\n outputs: [],\n stateMutability: 'nonpayable',\n type: 'function',\n },\n {\n inputs: [\n {\n internalType: 'uint32[]',\n name: 'fristPercent_',\n type: 'uint32[]',\n },\n ],\n name: 'setFristTopPercents',\n outputs: [],\n stateMutability: 'nonpayable',\n type: 'function',\n },\n {\n inputs: [\n {\n internalType: 'uint32',\n name: 'validPercents_',\n type: 'uint32',\n },\n {\n internalType: 'uint32',\n name: 'secondMaxPercents_',\n type: 'uint32',\n },\n ],\n name: 'setSecondTopPercents',\n outputs: [],\n stateMutability: 'nonpayable',\n type: 'function',\n },\n {\n inputs: [\n {\n internalType: 'uint32',\n name: 'startDate_',\n type: 'uint32',\n },\n ],\n name: 'setStartDate',\n outputs: [],\n stateMutability: 'nonpayable',\n type: 'function',\n },\n {\n inputs: [\n {\n internalType: 'address',\n name: 'type_',\n type: 'address',\n },\n ],\n name: 'setToken1Type',\n outputs: [],\n stateMutability: 'nonpayable',\n type: 'function',\n },\n {\n inputs: [\n {\n internalType: 'address',\n name: 'type_',\n type: 'address',\n },\n ],\n name: 'setToken2Type',\n outputs: [],\n stateMutability: 'nonpayable',\n type: 'function',\n },\n {\n inputs: [\n {\n internalType: 'address',\n name: 'wdAddress_',\n type: 'address',\n },\n ],\n name: 'setWithdrawAddress',\n outputs: [],\n stateMutability: 'nonpayable',\n type: 'function',\n },\n {\n inputs: [],\n name: 'startDate',\n outputs: [\n {\n internalType: 'uint32',\n name: '',\n type: 'uint32',\n },\n ],\n stateMutability: 'view',\n type: 'function',\n },\n {\n inputs: [\n {\n internalType: 'bytes4',\n name: 'interfaceId',\n type: 'bytes4',\n },\n ],\n name: 'supportsInterface',\n outputs: [\n {\n internalType: 'bool',\n name: '',\n type: 'bool',\n },\n ],\n stateMutability: 'view',\n type: 'function',\n },\n {\n inputs: [],\n name: 'token1Type',\n outputs: [\n {\n internalType: 'address',\n name: '',\n type: 'address',\n },\n ],\n stateMutability: 'view',\n type: 'function',\n },\n {\n inputs: [],\n name: 'token2Type',\n outputs: [\n {\n internalType: 'address',\n name: '',\n type: 'address',\n },\n ],\n stateMutability: 'view',\n type: 'function',\n },\n {\n inputs: [],\n name: 'tokenAddress',\n outputs: [\n {\n internalType: 'address',\n name: '',\n type: 'address',\n },\n ],\n stateMutability: 'view',\n type: 'function',\n },\n {\n inputs: [],\n name: 'unpause',\n outputs: [],\n stateMutability: 'nonpayable',\n type: 'function',\n },\n {\n inputs: [\n {\n internalType: 'address',\n name: 'newImplementation',\n type: 'address',\n },\n ],\n name: 'upgradeTo',\n outputs: [],\n stateMutability: 'nonpayable',\n type: 'function',\n },\n {\n inputs: [\n {\n internalType: 'address',\n name: 'newImplementation',\n type: 'address',\n },\n {\n internalType: 'bytes',\n name: 'data',\n type: 'bytes',\n },\n ],\n name: 'upgradeToAndCall',\n outputs: [],\n stateMutability: 'payable',\n type: 'function',\n },\n {\n inputs: [\n {\n internalType: 'uint256',\n name: 'amount_',\n type: 'uint256',\n },\n ],\n name: 'useToken',\n outputs: [],\n stateMutability: 'nonpayable',\n type: 'function',\n },\n {\n inputs: [],\n name: 'validPercents',\n outputs: [\n {\n internalType: 'uint32',\n name: '',\n type: 'uint32',\n },\n ],\n stateMutability: 'view',\n type: 'function',\n },\n {\n inputs: [],\n name: 'withdrawBalance',\n outputs: [],\n stateMutability: 'nonpayable',\n type: 'function',\n },\n]\n\nexport const claimAbi = [\n {\n anonymous: false,\n inputs: [\n {\n indexed: false,\n internalType: 'address',\n name: 'previousAdmin',\n type: 'address',\n },\n {\n indexed: false,\n internalType: 'address',\n name: 'newAdmin',\n type: 'address',\n },\n ],\n name: 'AdminChanged',\n type: 'event',\n },\n {\n anonymous: false,\n inputs: [\n {\n indexed: true,\n internalType: 'address',\n name: 'beacon',\n type: 'address',\n },\n ],\n name: 'BeaconUpgraded',\n type: 'event',\n },\n {\n anonymous: false,\n inputs: [\n {\n indexed: false,\n internalType: 'address',\n name: 'account',\n type: 'address',\n },\n ],\n name: 'Paused',\n type: 'event',\n },\n {\n anonymous: false,\n inputs: [\n {\n indexed: true,\n internalType: 'bytes32',\n name: 'role',\n type: 'bytes32',\n },\n {\n indexed: true,\n internalType: 'bytes32',\n name: 'previousAdminRole',\n type: 'bytes32',\n },\n {\n indexed: true,\n internalType: 'bytes32',\n name: 'newAdminRole',\n type: 'bytes32',\n },\n ],\n name: 'RoleAdminChanged',\n type: 'event',\n },\n {\n anonymous: false,\n inputs: [\n {\n indexed: true,\n internalType: 'bytes32',\n name: 'role',\n type: 'bytes32',\n },\n {\n indexed: true,\n internalType: 'address',\n name: 'account',\n type: 'address',\n },\n {\n indexed: true,\n internalType: 'address',\n name: 'sender',\n type: 'address',\n },\n ],\n name: 'RoleGranted',\n type: 'event',\n },\n {\n anonymous: false,\n inputs: [\n {\n indexed: true,\n internalType: 'bytes32',\n name: 'role',\n type: 'bytes32',\n },\n {\n indexed: true,\n internalType: 'address',\n name: 'account',\n type: 'address',\n },\n {\n indexed: true,\n internalType: 'address',\n name: 'sender',\n type: 'address',\n },\n ],\n name: 'RoleRevoked',\n type: 'event',\n },\n {\n anonymous: false,\n inputs: [\n {\n indexed: true,\n internalType: 'address',\n name: 'owner',\n type: 'address',\n },\n {\n indexed: false,\n internalType: 'uint256',\n name: 'amount',\n type: 'uint256',\n },\n {\n indexed: false,\n internalType: 'string',\n name: 'data',\n type: 'string',\n },\n ],\n name: 'TokenOut',\n type: 'event',\n },\n {\n anonymous: false,\n inputs: [\n {\n indexed: false,\n internalType: 'address',\n name: 'account',\n type: 'address',\n },\n ],\n name: 'Unpaused',\n type: 'event',\n },\n {\n anonymous: false,\n inputs: [\n {\n indexed: true,\n internalType: 'address',\n name: 'implementation',\n type: 'address',\n },\n ],\n name: 'Upgraded',\n type: 'event',\n },\n {\n inputs: [],\n name: 'DEFAULT_ADMIN_ROLE',\n outputs: [\n {\n internalType: 'bytes32',\n name: '',\n type: 'bytes32',\n },\n ],\n stateMutability: 'view',\n type: 'function',\n },\n {\n inputs: [],\n name: 'WITHDRAW_ROLE',\n outputs: [\n {\n internalType: 'bytes32',\n name: '',\n type: 'bytes32',\n },\n ],\n stateMutability: 'view',\n type: 'function',\n },\n {\n inputs: [],\n name: 'claimToken',\n outputs: [],\n stateMutability: 'nonpayable',\n type: 'function',\n },\n {\n inputs: [],\n name: 'getBalance',\n outputs: [\n {\n internalType: 'uint256',\n name: '',\n type: 'uint256',\n },\n ],\n stateMutability: 'view',\n type: 'function',\n },\n {\n inputs: [\n {\n internalType: 'bytes32',\n name: 'role',\n type: 'bytes32',\n },\n ],\n name: 'getRoleAdmin',\n outputs: [\n {\n internalType: 'bytes32',\n name: '',\n type: 'bytes32',\n },\n ],\n stateMutability: 'view',\n type: 'function',\n },\n {\n inputs: [],\n name: 'getWithdrawAddress',\n outputs: [\n {\n internalType: 'address',\n name: '',\n type: 'address',\n },\n ],\n stateMutability: 'view',\n type: 'function',\n },\n {\n inputs: [\n {\n internalType: 'bytes32',\n name: 'role',\n type: 'bytes32',\n },\n {\n internalType: 'address',\n name: 'account',\n type: 'address',\n },\n ],\n name: 'grantRole',\n outputs: [],\n stateMutability: 'nonpayable',\n type: 'function',\n },\n {\n inputs: [\n {\n internalType: 'bytes32',\n name: 'role',\n type: 'bytes32',\n },\n {\n internalType: 'address',\n name: 'account',\n type: 'address',\n },\n ],\n name: 'hasRole',\n outputs: [\n {\n internalType: 'bool',\n name: '',\n type: 'bool',\n },\n ],\n stateMutability: 'view',\n type: 'function',\n },\n {\n inputs: [\n {\n internalType: 'address',\n name: 'tokenAddress_',\n type: 'address',\n },\n {\n internalType: 'string',\n name: 'network_',\n type: 'string',\n },\n ],\n name: 'initialize',\n outputs: [],\n stateMutability: 'nonpayable',\n type: 'function',\n },\n {\n inputs: [],\n name: 'pause',\n outputs: [],\n stateMutability: 'nonpayable',\n type: 'function',\n },\n {\n inputs: [],\n name: 'paused',\n outputs: [\n {\n internalType: 'bool',\n name: '',\n type: 'bool',\n },\n ],\n stateMutability: 'view',\n type: 'function',\n },\n {\n inputs: [\n {\n internalType: 'bytes32',\n name: 'role',\n type: 'bytes32',\n },\n {\n internalType: 'address',\n name: 'account',\n type: 'address',\n },\n ],\n name: 'renounceRole',\n outputs: [],\n stateMutability: 'nonpayable',\n type: 'function',\n },\n {\n inputs: [\n {\n internalType: 'bytes32',\n name: 'role',\n type: 'bytes32',\n },\n {\n internalType: 'address',\n name: 'account',\n type: 'address',\n },\n ],\n name: 'revokeRole',\n outputs: [],\n stateMutability: 'nonpayable',\n type: 'function',\n },\n {\n inputs: [\n {\n internalType: 'uint256',\n name: 'amount_',\n type: 'uint256',\n },\n ],\n name: 'setClaimAmount',\n outputs: [],\n stateMutability: 'nonpayable',\n type: 'function',\n },\n {\n inputs: [\n {\n internalType: 'address',\n name: 'wdAddress_',\n type: 'address',\n },\n ],\n name: 'setWithdrawAddress',\n outputs: [],\n stateMutability: 'nonpayable',\n type: 'function',\n },\n {\n inputs: [\n {\n internalType: 'bytes4',\n name: 'interfaceId',\n type: 'bytes4',\n },\n ],\n name: 'supportsInterface',\n outputs: [\n {\n internalType: 'bool',\n name: '',\n type: 'bool',\n },\n ],\n stateMutability: 'view',\n type: 'function',\n },\n {\n inputs: [],\n name: 'tokenAddress',\n outputs: [\n {\n internalType: 'address',\n name: '',\n type: 'address',\n },\n ],\n stateMutability: 'view',\n type: 'function',\n },\n {\n inputs: [],\n name: 'unpause',\n outputs: [],\n stateMutability: 'nonpayable',\n type: 'function',\n },\n {\n inputs: [\n {\n internalType: 'address',\n name: 'newImplementation',\n type: 'address',\n },\n ],\n name: 'upgradeTo',\n outputs: [],\n stateMutability: 'nonpayable',\n type: 'function',\n },\n {\n inputs: [\n {\n internalType: 'address',\n name: 'newImplementation',\n type: 'address',\n },\n {\n internalType: 'bytes',\n name: 'data',\n type: 'bytes',\n },\n ],\n name: 'upgradeToAndCall',\n outputs: [],\n stateMutability: 'payable',\n type: 'function',\n },\n {\n inputs: [],\n name: 'withdrawBalance',\n outputs: [],\n stateMutability: 'nonpayable',\n type: 'function',\n },\n]\n","import Web3 from 'web3';\nexport const stakeABI = require('~/configs/stake.json');\n\ninterface IConfig {\n chainId: number;\n chainName: string;\n explorer: string;\n rpcUrl: string;\n scanUrl: string;\n}\n\nclass Web3Stake {\n configs: IConfig;\n web3Provider: any;\n web3Instance: any;\n contractAddr: any;\n constructor({ configs, contractAddr }: any) {\n this.configs = configs;\n this.contractAddr = contractAddr;\n this.init();\n }\n init() {\n this.web3Provider = new Web3(new Web3.providers.HttpProvider(this.configs.rpcUrl));\n this.web3Instance = new this.web3Provider.eth.Contract(stakeABI, this.contractAddr);\n }\n\n async timeClaimRewards() {\n try {\n const data = await this.web3Instance.methods.timeClaimRewards().call();\n return data;\n } catch (e) {\n return 0;\n }\n }\n async timeUnstake() {\n try {\n const data = await this.web3Instance.methods.timeUnstake().call();\n return data;\n } catch (e) {\n return 0;\n }\n }\n\n async rewards() {\n try {\n const data = await this.web3Instance.methods.rewards().call();\n return data;\n } catch (e) {\n return 0;\n }\n }\n\n async isClaimed(address: string) {\n try {\n const data = await this.web3Instance.methods.isClaimed(address).call();\n return data;\n } catch (e) {\n return false;\n }\n }\n\n async stakeInfo(address: string) {\n try {\n const data = await this.web3Instance.methods.stakeInfo(address).call();\n return data;\n } catch (e) {\n return null;\n }\n }\n\n async timeStake() {\n try {\n const data = await this.web3Instance.methods.timeStake().call();\n return data;\n } catch (e) {\n return null;\n }\n }\n}\n\nexport default Web3Stake;\n","import { GetterTree, MutationTree, ActionTree } from 'vuex';\nimport Web3 from 'web3';\nimport Web3Modal from 'web3modal';\nimport WalletConnectProvider from '@walletconnect/web3-provider';\nimport { contractsLists, supportChains, metaConfigs, configApi } from '~/libs/config';\nimport { ALLOWANCE_MAX, CATEGORY_PLANT, CATEGORY_POT, MAX_GAS_FEE, WEB3_TIME_LIMIT } from '~/libs/const';\nimport { marketAbi, plantAbi, tokenAbi } from '~/libs/abi';\nimport { shortenWallet, w3FromWei, getRPCs, getConfigChain, isChainSupport } from '~/libs/helper';\nimport Web3Handlers from '~/libs/web3.handlers';\nimport Web3Stake from '~/libs/web3.stake';\nimport handlerNFT from '~/libs/handlerNFT';\nimport { SMC_STAKE_DPET } from '~/libs/const';\nconst stakeABI = require('~/configs/stake.json');\nconst SMC_DPET_BSC = require('~/configs/metaconfig.json');\ndeclare var window: any;\n\nconst chainBSC = getConfigChain(56); // network BSC\nconst stakeHandlers = new Web3Stake({\n configs: chainBSC,\n contractAddr: SMC_STAKE_DPET\n});\n\ninterface IState {\n isLogin: boolean;\n chainId: number;\n account: string;\n nfts: [];\n timeClaimRewards: number;\n rewards: number;\n timeUnstake: number;\n timeStake: number;\n stakeInfo: any;\n isClaimed: boolean;\n nextCursor: string;\n}\n\nexport const state = (): IState => ({\n isLogin: false,\n account: '',\n chainId: 0,\n nfts: [],\n timeClaimRewards: 0,\n timeUnstake: 0,\n timeStake: 0,\n rewards: 0,\n stakeInfo: {\n totalv1: 0,\n totalv2: 0\n },\n isClaimed: false,\n nextCursor: ''\n});\n\nexport const getters: GetterTree = {\n getProvider() {\n return new Web3Modal({\n cacheProvider: true,\n providerOptions: {\n walletconnect: {\n package: WalletConnectProvider,\n options: {\n rpc: getRPCs()\n }\n }\n },\n theme: 'dark'\n });\n },\n isConnected(state) {\n return state.isLogin;\n },\n getWalletAddress(state) {\n if (state.isLogin) {\n return state.account;\n } else {\n return null;\n }\n },\n getChainId(state) {\n return state.chainId;\n },\n getTimeClaimRewards(state) {\n return state.timeClaimRewards;\n },\n getTimeUnstake(state) {\n return state.timeUnstake;\n },\n getTimeStake(state) {\n return state.timeStake;\n },\n getTotalRewards(state) {\n return state.rewards;\n },\n getStakeInfo(state) {\n return state.stakeInfo;\n },\n getListNFT(state) {\n return state.nfts;\n },\n isClaimed(state) {\n return state.isClaimed;\n }\n};\n\nexport const mutations: MutationTree = {\n setAccount(state, account) {\n if (state.account !== account) {\n account = account.toLocaleLowerCase();\n state.account = account;\n // get format wallet\n state.isLogin = true;\n }\n },\n setChainId(state, chainId) {\n chainId = parseInt(chainId);\n state.chainId = chainId;\n if (chainId !== 56) {\n // @ts-ignore\n $nuxt.$toast.error('chain not support, please switch chain BSC Mainnet');\n }\n\n // if (!isChainSupport(chainId)) {\n // // @ts-ignore\n // $nuxt.$toast.error('chain not support, please switch chain ETH or BSC');\n // }\n },\n\n resetState(state) {\n state.isLogin = false;\n state.account = '';\n state.chainId = 0;\n state.nfts = [];\n state.stakeInfo = {};\n state.nextCursor = '';\n },\n\n setTimeClaimRewards(state, timeClaimRewards) {\n state.timeClaimRewards = timeClaimRewards;\n },\n setTimeUnstake(state, timeUnstake) {\n state.timeUnstake = timeUnstake;\n },\n setTimeStake(state, timeStake) {\n state.timeStake = timeStake;\n },\n setStakeInfo(state, info) {\n state.stakeInfo.totalv1 = parseInt(info?.totalv1);\n state.stakeInfo.totalv2 = parseInt(info?.totalv2);\n },\n setIsClaimed(state, isClaimed) {\n state.isClaimed = isClaimed;\n },\n setRewards(state, rewards) {\n state.rewards = rewards;\n },\n setNftProfile(state, data) {\n // @ts-ignore\n const ids = new Set(state.nfts.map(d => d?.tokenId));\n // @ts-ignore\n const merged = [...state.nfts, ...data.filter(d => !ids.has(d?.tokenId))];\n // @ts-ignore\n state.nfts = merged;\n },\n setCursorNext(state, data) {\n state.nextCursor = data;\n }\n};\n\nexport const actions: ActionTree = {\n async connect({ state, commit, dispatch, getters }, clearCachedProvider: boolean = false): Promise {\n const web3Provider = await getters.getProvider;\n if (clearCachedProvider) web3Provider.clearCachedProvider();\n const provider = await web3Provider.connect();\n if (clearCachedProvider) web3Provider.setCachedProvider('injected');\n const web3 = new Web3(provider);\n window.gaiaweb3 = web3;\n const accounts = await web3.eth.getAccounts();\n const chainId: number = await web3.eth.getChainId();\n commit('setAccount', accounts[0]);\n commit('setChainId', chainId);\n\n provider.on('accountsChanged', (accounts: string[]) => {\n commit('setAccount', accounts[0]);\n });\n\n provider.on('chainChanged', (chainId: string) => {\n if (parseInt(chainId) !== 56) {\n // @ts-ignore\n $nuxt.$toast.error('chain not support, please switch chain BSC Mainnet');\n dispatch('metamaskSwitchChain', 56);\n } else {\n commit('setChainId', chainId);\n }\n });\n\n return web3;\n },\n\n async checkWalletChainBSC({ dispatch }) {\n const web3 = await dispatch('connect');\n const chainId: number = await web3.eth.getChainId();\n return chainId === 56;\n },\n\n async getContractInstance({ dispatch }) {\n const web3 = await dispatch('connect');\n const contract = new web3.eth.Contract(stakeABI, SMC_STAKE_DPET);\n return contract;\n },\n\n async getChainId({ dispatch }) {\n const web3 = await dispatch('connect');\n return await web3.eth.getChainId();\n },\n\n getExchangeTokenMarket({ state }, { category }) {\n if (category === CATEGORY_PLANT) return contractsLists.NFT_PLANT_MARKET_ADDRESS;\n else if (category === CATEGORY_POT) return contractsLists.NFT_POT_MARKET_ADDRESS;\n else return '';\n },\n\n getExchangeToken({ state }, { category }) {\n if (category === CATEGORY_PLANT) return contractsLists.NFT_PLANT_ADDRESS;\n else if (category === CATEGORY_POT) return contractsLists.NFT_POT_ADDRESS;\n else return '';\n },\n\n async buyNfts({ state, dispatch }, { tid, category, price }) {\n try {\n const tokenApprove = await dispatch('getTokenApprove', { category });\n if (!tokenApprove) {\n // @ts-ignore\n $nuxt.$toast.error('You have not granted access permission');\n return false;\n } else {\n const exchangeAddress = await dispatch('getExchangeTokenMarket', {\n category\n });\n const web3 = await dispatch('connect');\n const contract = new web3.eth.Contract(marketAbi, exchangeAddress);\n const buyNft = await contract.methods.bid(tid, price.toString()).send({ from: state.account, gas: MAX_GAS_FEE });\n return buyNft.status;\n }\n } catch (error) {\n return false;\n }\n },\n\n async cancelNfts({ state, dispatch }, { tid, category }) {\n try {\n const tokenApprove = await dispatch('getTokenApprove', { category });\n if (!tokenApprove) {\n // @ts-ignore\n $nuxt.$toast.error('You have not granted access permission');\n return false;\n } else {\n const exchangeAddress = await dispatch('getExchangeTokenMarket', {\n category\n });\n const web3 = await dispatch('connect');\n const contract = new web3.eth.Contract(marketAbi, exchangeAddress);\n const buyNft = await contract.methods.cancelAuction(tid).send({ from: state.account, gas: MAX_GAS_FEE });\n return buyNft.status;\n }\n } catch (error) {\n return false;\n }\n },\n\n async sellNfts({ state, dispatch }, { tid, category, price }) {\n try {\n const tokenApprove = await dispatch('getTokenApprove', { category });\n if (!tokenApprove) {\n // @ts-ignore\n $nuxt.$toast.error('You have not granted access permission');\n return false;\n } else {\n const exchangeAddress = await dispatch('getExchangeToken', {\n category\n });\n const web3 = await dispatch('connect');\n const contract = new web3.eth.Contract(plantAbi, exchangeAddress);\n const amount = price;\n const sellNfts = await contract.methods.createSaleAuction(tid, amount, amount, WEB3_TIME_LIMIT).send({ from: state.account, gas: MAX_GAS_FEE });\n return sellNfts.status;\n }\n } catch (error) {\n return false;\n }\n },\n\n async getTokenApprove({ state, dispatch }, { category }) {\n try {\n const web3 = await dispatch('connect');\n const contract = new web3.eth.Contract(tokenAbi, contractsLists.BIF_TOKEN_ADDRESS);\n const exchangeAddress = await dispatch('getExchangeTokenMarket', {\n category\n });\n\n const allowance = await contract.methods.allowance(state.account, exchangeAddress).call();\n\n if (parseInt(allowance) > 0) {\n return true;\n }\n // request permission\n const approve = await contract.methods.approve(exchangeAddress, ALLOWANCE_MAX).send({ from: state.account, gas: MAX_GAS_FEE });\n return approve.status;\n } catch (error) {\n return false;\n }\n },\n\n async getDpetNFTs({ state, dispatch, commit }, { address }) {\n return new Promise(async (resolve, reject) => {\n try {\n const data = await dispatch('fetchPET', { address, cursor: state.nextCursor });\n commit('setNftProfile', data);\n if (data.length > 49) {\n await dispatch('getDpetNFTs', { address });\n }\n resolve({ success: true });\n } catch (error) {\n reject(error);\n }\n });\n },\n\n async fetchPET({ state, dispatch, commit }, { address, cursor }) {\n return new Promise((resolve, reject) => {\n this.$axios\n .$post(`${configApi.getDpetNFT}${address}`, { chain: 'bsc', mini: true, cursor })\n .then(async res => {\n if (res?.data.length > 49) {\n commit('setCursorNext', res?.nextCursor);\n } else {\n commit('setCursorNext', '');\n }\n const data = await Promise.all(\n res?.data.map((item: any, index: number) => {\n if (item.version === 1) {\n item.image = `https://cdn.agoran.io/DPet/my_defipet-bsc-${SMC_DPET_BSC['DPET-BSC-V1'].addr}-${item.tokenId}.jpeg`;\n } else {\n item.image = `https://cdn.agoran.io/DPet/my_defipet-bsc-${SMC_DPET_BSC['DPET-BSC-V2'].addr}-${item.tokenId}.jpeg`;\n }\n return {\n ...item,\n // image: `https://cdn.agoran.io/DPet/my_defipet-bsc-${item?.id}.jpeg`,\n name: `Pet #${item.tokenId}`\n };\n })\n );\n resolve(data);\n })\n .catch(error => reject(null));\n });\n },\n\n async disconnect({ getters, commit }): Promise {\n const web3Provider = await getters.getProvider;\n web3Provider.clearCachedProvider();\n commit('resetState');\n },\n\n async getSignature({ state, dispatch }, { dataString, address }) {\n const web3 = await dispatch('connect');\n const signature = new web3.eth.personal.sign(web3.utils.fromUtf8(dataString), address);\n return signature;\n },\n async metamaskSwitchChain({ state, dispatch }, chainId) {\n const provider = window.ethereum;\n const accounts = await provider.request({ method: 'eth_accounts' });\n const account = accounts[0];\n const hex = '0x' + chainId.toString(16);\n if (provider.isMetaMask) {\n await provider.request({\n method: 'wallet_switchEthereumChain',\n params: [{ chainId: hex }, account]\n });\n }\n },\n async scanNFTOwner({ state, dispatch }, address: string) {\n let arrNFT: any[] = [];\n await Promise.all(\n Object.entries(metaConfigs).map(async ([key, obj]: any) => {\n const network = getConfigChain(Number(obj.network)); // network smart contract\n const web3handlers = new Web3Handlers({\n configs: network,\n contractAddr: obj.addr\n });\n const balanceOf = await web3handlers.balanceOf(address); // get balance NFT account\n if (balanceOf > 0) {\n for (let index = 0; index < balanceOf; index++) {\n const tokenId = await web3handlers.tokenOfOwnerByIndex(address, index); // get ID NFT account\n const tokenURI = await web3handlers.tokenURI(tokenId); // get URI NFT account\n const mode = tokenURI.split('://')[0];\n const data = await handlerNFT.parseData(mode, tokenURI);\n data.id = tokenId;\n if (!data?.name) data.name = `${key} #${tokenId}`;\n if (data) arrNFT.push(data);\n }\n }\n })\n );\n return arrNFT;\n },\n async approveToken({ state, dispatch }, { tokenId, isV1 }) {\n let contractNFT;\n try {\n const web3 = await dispatch('connect');\n if (isV1) {\n contractNFT = new web3.eth.Contract(stakeABI, SMC_DPET_BSC['DPET-BSC-V1'].addr);\n } else {\n contractNFT = new web3.eth.Contract(stakeABI, SMC_DPET_BSC['DPET-BSC-V2'].addr);\n }\n // request permission\n const approve = await contractNFT.methods.approve(SMC_STAKE_DPET, tokenId).send({ from: state.account, gas: MAX_GAS_FEE });\n return approve.status;\n } catch (error) {\n return false;\n }\n },\n async stake({ state, dispatch }, { tokenId, isV1 }) {\n return new Promise(async (resolve, reject) => {\n try {\n const checkBSC = await dispatch('checkWalletChainBSC');\n if (!checkBSC) reject({ message: 'chain not support, please switch chain BSC Mainnet' });\n const tokenApprove = await dispatch('approveToken', { tokenId, isV1 });\n if (!tokenApprove) {\n reject({ message: 'You have not granted access permission' });\n } else {\n const contractInstance = await dispatch('getContractInstance');\n const staked = await contractInstance.methods.stake(tokenId, isV1).send({ from: state.account, gas: MAX_GAS_FEE });\n resolve({ success: true, data: staked });\n }\n } catch (error) {\n reject(error);\n }\n });\n },\n async unStake({ state, commit, dispatch }, { tokenId, isV1 }) {\n return new Promise(async (resolve, reject) => {\n try {\n const checkBSC = await dispatch('checkWalletChainBSC');\n if (!checkBSC) reject({ message: 'chain not support, please switch chain BSC Mainnet' });\n const contractInstance = await dispatch('getContractInstance');\n const unStaked = await contractInstance.methods.unStakeToken(tokenId, isV1).send({ from: state.account, gas: MAX_GAS_FEE });\n resolve({ success: true, data: unStaked });\n } catch (error) {\n reject(error);\n }\n });\n },\n\n async unStakeV1({ state, commit, dispatch }) {\n return new Promise(async (resolve, reject) => {\n try {\n const checkBSC = await dispatch('checkWalletChainBSC');\n if (!checkBSC) reject({ message: 'chain not support, please switch chain BSC Mainnet' });\n const contractInstance = await dispatch('getContractInstance');\n const unStaked = await contractInstance.methods.unStakeAlV1().send({ from: state.account, gas: MAX_GAS_FEE });\n resolve({ success: true, data: unStaked });\n } catch (error) {\n reject(error);\n }\n });\n },\n\n async unStakeV2({ state, commit, dispatch }) {\n return new Promise(async (resolve, reject) => {\n try {\n const checkBSC = await dispatch('checkWalletChainBSC');\n if (!checkBSC) reject({ message: 'chain not support, please switch chain BSC Mainnet' });\n const contractInstance = await dispatch('getContractInstance');\n const unStaked = await contractInstance.methods.unStakeAlV2().send({ from: state.account, gas: MAX_GAS_FEE });\n resolve({ success: true, data: unStaked });\n } catch (error) {\n reject(error);\n }\n });\n },\n\n async claimRewards({ state, commit, dispatch }) {\n return new Promise(async (resolve, reject) => {\n try {\n const checkBSC = await dispatch('checkWalletChainBSC');\n if (!checkBSC) reject({ message: 'chain not support, please switch chain BSC Mainnet' });\n const contractInstance = await dispatch('getContractInstance');\n const claim = await contractInstance.methods.claimRewards().send({ from: state.account, gas: MAX_GAS_FEE });\n resolve({ success: true, data: claim });\n } catch (error) {\n reject(error);\n }\n });\n },\n\n //ABI view\n\n async getTimeClaimRewards({ state, commit, dispatch }) {\n return new Promise(async (resolve, reject) => {\n try {\n const data = await stakeHandlers.timeClaimRewards();\n commit('setTimeClaimRewards', data);\n resolve(data);\n } catch (error) {\n reject(error);\n }\n });\n },\n async getTimeUnstake({ state, commit, dispatch }) {\n return new Promise(async (resolve, reject) => {\n try {\n const data = await stakeHandlers.timeUnstake();\n commit('setTimeUnstake', data);\n resolve(data);\n } catch (error) {\n reject(error);\n }\n });\n },\n\n async getRewards({ state, commit, dispatch }) {\n return new Promise(async (resolve, reject) => {\n try {\n const data = await stakeHandlers.rewards();\n commit('setRewards', data);\n resolve(data);\n } catch (error) {\n reject(error);\n }\n });\n },\n\n async isClaimed({ state, commit, dispatch }) {\n return new Promise(async (resolve, reject) => {\n try {\n const isClaimed = await stakeHandlers.isClaimed(state.account);\n commit('setIsClaimed', isClaimed);\n resolve(isClaimed);\n } catch (error) {\n reject(error);\n }\n });\n },\n\n async stakeInfo({ state, commit, dispatch }) {\n return new Promise(async (resolve, reject) => {\n try {\n const stakeInfo = await stakeHandlers.stakeInfo(state.account);\n commit('setStakeInfo', stakeInfo);\n resolve(stakeInfo);\n } catch (error) {\n reject(null);\n }\n });\n },\n\n async getTimeStake({ state, commit, dispatch }) {\n return new Promise(async (resolve, reject) => {\n try {\n const timeStake = await stakeHandlers.timeStake();\n commit('setTimeStake', timeStake);\n resolve(timeStake);\n } catch (error) {\n reject(null);\n }\n });\n }\n};\n","//import _ from 'lodash'\nimport Web3 from 'web3';\n\nimport { configApi, supportChains, smcMode } from './config';\n\nexport function w3FromWei(price: string): number {\n if (!price) return 0.0;\n return parseFloat(Web3.utils.fromWei(price, 'ether'));\n}\n\nexport function w3toWei(price: string) {\n return Web3.utils.toWei(price, 'ether');\n}\n\nexport function shortenWallet(address: string) {\n if (!!address) return `${address.substring(0, 5)}...${address.substring(address.length - 4)}`;\n return '...';\n}\n\nexport function formatTime(unix: number) {\n const date = new Date(unix * 1000);\n return date.toLocaleString('en-US');\n}\n\nexport function shortNumber(numberV: number, withAbbr = true, decimals = 2) {\n if (!numberV) numberV = 0;\n const COUNT_ABBR = ['', 'K', 'M', 'B', 'T'];\n const i = numberV < 1000 ? 0 : Math.floor(Math.log(numberV) / Math.log(1000));\n const result = (numberV / Math.pow(1000, i)).toLocaleString('en-US', { minimumFractionDigits: decimals, maximumFractionDigits: decimals });\n if (withAbbr) return `$${result}${COUNT_ABBR[i]}`;\n return result;\n}\n\nexport function isMobile() {\n return /Android|webOS|iPhone|iPad|iPod|BlackBerry|IEMobile|Opera Mini/i.test(navigator.userAgent);\n}\n\nexport async function copyToClipboard(subject: string, content: string) {\n try {\n await navigator.clipboard.writeText(content);\n showNotification(subject + ' has been copied');\n } catch ($e) {\n showNotification('Copy to clipboard error', false);\n }\n}\n\nexport function showNotification(content: string, isSuccess: boolean = true) {\n const $toast = window.$nuxt.$toast;\n if (isSuccess) $toast.success(content);\n else $toast.error(content);\n}\n\nexport function formatNumber(numberV: number, isFloat: boolean, locale: string) {\n if (!isFloat) return Math.round(numberV).toLocaleString(locale);\n\n //if (numberV < 100000)\n //numberV += 0.0240;\n let floatV = Math.round(numberV * 10000) % 10000;\n if (floatV) return numberV.toLocaleString(locale, { minimumFractionDigits: 4, maximumFractionDigits: 4 });\n return Math.round(numberV).toLocaleString(locale);\n}\n\nexport function floatNumber(numberV: number) {\n let fRw = Math.round(numberV * 10000) % 10000;\n //if (numberV > 100000)\n //fRw += 0.0240;\n if (fRw) return '.' + String(fRw).padStart(4, '0');\n else return false;\n}\n\nexport function weiToFixed(x: any) {\n if (Math.abs(x) < 1.0) {\n var e = parseInt(x.toString().split('e-')[1]);\n if (e) {\n x *= Math.pow(10, e - 1);\n x = '0.' + new Array(e).join('0') + x.toString().substring(2);\n }\n } else {\n var e = parseInt(x.toString().split('+')[1]);\n if (e > 20) {\n e -= 20;\n x /= Math.pow(10, e);\n x += new Array(e + 1).join('0');\n }\n }\n return x;\n}\n\nexport const padLeft = (number: number, length: number, character: string = '0'): string => {\n let result = String(number);\n for (let i = result.length; i < length; ++i) {\n result = character + result;\n }\n return result;\n};\n\nexport const getRPCs = () =>\n supportChains[`${smcMode}`].reduce((acc: any, cur: any) => {\n acc[`${cur.chainId}`] = cur.rpcUrl;\n return acc;\n }, {});\n\nexport const getConfigChain = (chainId: number) => {\n return supportChains[`${smcMode}`].find(function (item: any) {\n return item.chainId === chainId;\n });\n};\n\nexport const isChainSupport = (chainId: number) => supportChains[`${smcMode}`].some((item: any) => item.chainId === chainId);\n"],"sourceRoot":""}