@mojito-inc/secondary-market
Version:
Mojito secondary market is the platform to purchase NFT.
2 lines (1 loc) • 3.31 kB
JavaScript
;var t=require("react"),l=require("@mojito-inc/core-service"),e=require("../utils/truncateDecimal.utils.js"),n=require("../utils/truncateAddress.utils.js"),i=require("../utils/traits.utils.js"),o=require("../utils/getTotalVin.utils.js");exports.useProvenance=u=>{const{getNFTHistory:r,getNFTAttributesRarity:d}=l.useNFT(),[a,s]=t.useState(),[v,c]=t.useState(),[T,m]=t.useState(!1),[p,f]=t.useState(!1),[h,k]=t.useState(!1),[I,g]=t.useState(!1),[y,C]=t.useState(0),w=t.useCallback((()=>{k(!0)}),[]),A=t.useCallback((()=>{g(!0)}),[]),D=t.useCallback((async()=>{var t,l,i,o,d,a,v,c,T,p,f,h,k;const I=null==u?void 0:u.onChainTokenID;try{m(!0),s(null);const g=await r({nftTokenId:u.itemId,orgId:u.orgId,contractAddress:u.contractAddress,tokenId:I,networkId:null==u?void 0:u.networkId,ownerAddress:null==u?void 0:u.ownerAddress,limit:null!==(t=null==u?void 0:u.limit)&&void 0!==t?t:10,offset:(null!==(l=null==u?void 0:u.offset)&&void 0!==l?l:0)*(null!==(i=null==u?void 0:u.limit)&&void 0!==i?i:0),currency:(null==u?void 0:u.currency)||"USD"},{fetchPolicy:"no-cache"}),y=null===(d=null===(o=null==g?void 0:g.data)||void 0===o?void 0:o.getNFTHistoryV2)||void 0===d?void 0:d.data,w=null==y?void 0:y.map((t=>{var l,i,o;const u=null==t?void 0:t.price;return{eventType:0===Number(null==t?void 0:t.from)?"Minted":null==t?void 0:t.eventType,price:u?`${e.truncateDecimal(null===(l=null==u?void 0:u[1])||void 0===l?void 0:l.value)} ${null===(i=null==u?void 0:u[1])||void 0===i?void 0:i.unit}`:"—",from:(null==t?void 0:t.from)?n.truncateAddress(null==t?void 0:t.from):"—",to:(null==t?void 0:t.to)?n.truncateAddress(null==t?void 0:t.to):"—",blockTimestamp:null==t?void 0:t.blockTimestamp,hash:null!==(o=null==t?void 0:t.hash)&&void 0!==o?o:null}})),A=(null!==(c=null===(v=null===(a=null==g?void 0:g.data)||void 0===a?void 0:a.getNFTHistoryV2)||void 0===v?void 0:v.totalCount)&&void 0!==c?c:0)/(null!==(T=null==u?void 0:u.limit)&&void 0!==T?T:0),D=(null!==(h=null===(f=null===(p=null==g?void 0:g.data)||void 0===p?void 0:p.getNFTHistoryV2)||void 0===f?void 0:f.totalCount)&&void 0!==h?h:0)%(null!==(k=null==u?void 0:u.limit)&&void 0!==k?k:0),S=Math.floor(A);return C(D>0?S+1:S),s(w),m(!1),w}catch(t){return m(!1),s(null),null}}),[u,r]),S=t.useCallback((async()=>{var t;const l=null==u?void 0:u.onChainTokenID;try{f(!0),g(!1);const e=await d({contractAddress:u.contractAddress,networkID:u.networkId,tokenID:l,refreshCatch:!1}),n=null===(t=null==e?void 0:e.data)||void 0===t?void 0:t.getNFTAttributesRarity,r=null==n?void 0:n.map((t=>({title:String(null==t?void 0:t.traitType),description:i.getTraitsDescription(null==t?void 0:t.value),percent:i.getTraitsPercent(t.prevalance)})));if(u.showSpecialTraits&&(u.connectedChainId||(null==u?void 0:u.customRPCUrl))){const t=await o.getTotalVin(u.onChainTokenID,u.connectedChainId,null==u?void 0:u.customRPCUrl);t>0&&(null==r||r.unshift({title:"Special",description:"TOTAL VIN",percent:null==t?void 0:t.toString()}))}return c(r),f(!1),r}catch(t){return f(!1),c(null),null}}),[u,d]);return t.useEffect((()=>{(null==u?void 0:u.networkId)&&h&&(D(),k(!1))}),[u,h,D]),t.useEffect((()=>{(null==u?void 0:u.networkId)&&I&&(S(),g(!1))}),[u,I,S]),{provenanceData:a,provenanceLoading:T,traitsData:v,traitsLoading:p,totalProvenanceData:y,provenanceRefetch:w,traitsRefetch:A}};