diff --git a/src/components/organisms/AssetActions/Compute/index.tsx b/src/components/organisms/AssetActions/Compute/index.tsx index 3286acb75..c716ab58b 100644 --- a/src/components/organisms/AssetActions/Compute/index.tsx +++ b/src/components/organisms/AssetActions/Compute/index.tsx @@ -3,7 +3,6 @@ import { DDO, File as FileMetadata, Logger, - ServiceType, publisherTrustedAlgorithm, BestPrice } from '@oceanprotocol/lib' @@ -34,11 +33,8 @@ import FormStartComputeDataset from './FormComputeDataset' import styles from './index.module.css' import SuccessConfetti from '../../../atoms/SuccessConfetti' import Button from '../../../atoms/Button' -import { gql, useQuery } from '@apollo/client' -import { FrePrice } from '../../../../@types/apollo/FrePrice' -import { PoolPrice } from '../../../../@types/apollo/PoolPrice' import { secondsToString } from '../../../../utils/metadata' -import { getPreviousOrders } from '../../../../utils/subgraph' +import { getPreviousOrders, getPrice } from '../../../../utils/subgraph' const SuccessAction = () => ( ) -const freQuery = gql` - query AlgorithmFrePrice($datatoken: String) { - fixedRateExchanges(orderBy: id, where: { datatoken: $datatoken }) { - rate - id - } - } -` -const poolQuery = gql` - query AlgorithmPoolPrice($datatoken: String) { - pools(where: { datatokenAddress: $datatoken }) { - spotPrice - } - } -` - export default function Compute({ isBalanceSufficient, dtBalance, @@ -91,7 +71,6 @@ export default function Compute({ ) const [algorithmDTBalance, setalgorithmDTBalance] = useState() const [algorithmPrice, setAlgorithmPrice] = useState() - const [variables, setVariables] = useState({}) const [ previousAlgorithmOrderId, setPreviousAlgorithmOrderId @@ -99,25 +78,6 @@ export default function Compute({ const [datasetTimeout, setDatasetTimeout] = useState() const [algorithmTimeout, setAlgorithmTimeout] = useState() - /* eslint-disable @typescript-eslint/no-unused-vars */ - const { - refetch: refetchFre, - startPolling: startPollingFre, - data: frePrice - } = useQuery(freQuery, { - variables, - skip: false - }) - const { - refetch: refetchPool, - startPolling: startPollingPool, - data: poolPrice - } = useQuery(poolQuery, { - variables, - skip: false - }) - /* eslint-enable @typescript-eslint/no-unused-vars */ - const isComputeButtonDisabled = isJobStarting === true || file === null || !ocean || !isBalanceSufficient const hasDatatoken = Number(dtBalance) >= 1 @@ -211,37 +171,10 @@ export default function Compute({ setDatasetTimeout(secondsToString(timeout)) }, [ddo]) - useEffect(() => { - if ( - !frePrice || - frePrice.fixedRateExchanges.length === 0 || - algorithmPrice.type !== 'exchange' - ) - return - setAlgorithmPrice((prevState) => ({ - ...prevState, - value: frePrice.fixedRateExchanges[0].rate, - address: frePrice.fixedRateExchanges[0].id - })) - }, [frePrice]) - - useEffect(() => { - if ( - !poolPrice || - poolPrice.pools.length === 0 || - algorithmPrice.type !== 'pool' - ) - return - setAlgorithmPrice((prevState) => ({ - ...prevState, - value: poolPrice.pools[0].spotPrice - })) - }, [poolPrice]) - const initMetadata = useCallback(async (ddo: DDO): Promise => { if (!ddo) return - setAlgorithmPrice(ddo.price) - setVariables({ datatoken: ddo?.dataToken.toLowerCase() }) + const price = await getPrice(ddo) + setAlgorithmPrice(price) }, []) useEffect(() => {