From 53ca5ad6cbf8214c037f20643fd452050aaf208b Mon Sep 17 00:00:00 2001 From: mihaisc Date: Tue, 4 Aug 2020 14:49:45 +0300 Subject: [PATCH] format/test --- example/package-lock.json | 2 +- example/src/AllDdos.tsx | 5 +- example/src/App.tsx | 34 ++++++------- example/src/ConsumeDdo.tsx | 2 - example/src/Publish.tsx | 14 ++++-- src/hooks/useCompute/useCompute.ts | 2 +- src/hooks/useConsume/useConsume.ts | 7 +-- src/hooks/useMetadata/useMetadata.ts | 10 +--- src/hooks/usePublish/usePublish.ts | 7 +-- src/utils/dtUtils.ts | 71 ++++++++++++++++++++-------- 10 files changed, 87 insertions(+), 67 deletions(-) diff --git a/example/package-lock.json b/example/package-lock.json index 9f7f185..b5be4bf 100644 --- a/example/package-lock.json +++ b/example/package-lock.json @@ -1702,7 +1702,7 @@ "axios": "^0.19.2", "react": "^16.9.41", "web3": "^1.2.11", - "web3modal": "^1.8.0" + "web3modal": "^1.8.0", "@ethereum-navigator/navigator": "^0.5.0", "@oceanprotocol/contracts": "^0.3.1", "bignumber.js": "^9.0.0", diff --git a/example/src/AllDdos.tsx b/example/src/AllDdos.tsx index 2c5f460..dc49ad0 100644 --- a/example/src/AllDdos.tsx +++ b/example/src/AllDdos.tsx @@ -5,7 +5,7 @@ import { useState } from 'react' import { useEffect } from 'react' import shortid from 'shortid' export function AllDdos() { - const { accountId,account, ocean } = useOcean() + const { accountId, account, ocean } = useOcean() const [ddos, setDdos] = useState() @@ -13,7 +13,6 @@ export function AllDdos() { async function init() { if (ocean === undefined || account === undefined) return - const assets = await ocean.assets.query({ page: 1, offset: 10, @@ -24,7 +23,7 @@ export function AllDdos() { setDdos(assets.results) } init() - }, [ocean,account]) + }, [ocean, account]) return ( <> diff --git a/example/src/App.tsx b/example/src/App.tsx index 0bb135d..3acf7f9 100644 --- a/example/src/App.tsx +++ b/example/src/App.tsx @@ -52,24 +52,24 @@ function App() { }, []) return ( - -
-
- -
-
- -
- -
- -
- -
- -
+ +
+
+
- +
+ +
+ +
+ +
+ +
+ +
+
+
) } diff --git a/example/src/ConsumeDdo.tsx b/example/src/ConsumeDdo.tsx index 7c344f1..0c51daf 100644 --- a/example/src/ConsumeDdo.tsx +++ b/example/src/ConsumeDdo.tsx @@ -10,7 +10,6 @@ import { Metadata, DDO } from '@oceanprotocol/lib' import { useState } from 'react' import { useEffect } from 'react' - export function ConsumeDdo() { const { accountId, ocean } = useOcean() const { consumeStepText, consume, consumeError } = useConsume() @@ -28,7 +27,6 @@ export function ConsumeDdo() { await consume(did, ddo.dataToken, 'access') } - const computeDid = async () => { if (did === undefined) return const ddo = await ocean.assets.resolve(did) diff --git a/example/src/Publish.tsx b/example/src/Publish.tsx index c694a50..0a90886 100644 --- a/example/src/Publish.tsx +++ b/example/src/Publish.tsx @@ -1,11 +1,11 @@ import React from 'react' import { useOcean, usePublish } from '@oceanprotocol/react' -import { DDO } from '@oceanprotocol/lib' +import { DDO } from '@oceanprotocol/lib' import { useState } from 'react' import { Metadata } from '@oceanprotocol/lib/dist/node/ddo/interfaces/Metadata' export function Publish() { - const { accountId,ocean } = useOcean() + const { accountId, ocean } = useOcean() const { publish, publishStepText } = usePublish() const [ddo, setDdo] = useState() @@ -31,9 +31,15 @@ export function Publish() { } const publishAsset = async () => { - const ddo = await publish(asset as Metadata, '90','access','','') + const ddo = await publish(asset as Metadata, '90', 'access', '', '') console.log(ddo) - const pool = ocean.pool.createDTPool(accountId,ddo.dataToken,'90','9','0.03') + const pool = ocean.pool.createDTPool( + accountId, + ddo.dataToken, + '90', + '9', + '0.03' + ) setDdo(ddo) } return ( diff --git a/src/hooks/useCompute/useCompute.ts b/src/hooks/useCompute/useCompute.ts index 1c7cffa..997c7c8 100644 --- a/src/hooks/useCompute/useCompute.ts +++ b/src/hooks/useCompute/useCompute.ts @@ -65,7 +65,7 @@ function useCompute(): UseCompute { setIsLoading(true) setStep(0) - await checkAndBuyDT(ocean,dataTokenAddress, account) + await checkAndBuyDT(ocean, dataTokenAddress, account) rawAlgorithmMeta.container = computeContainer rawAlgorithmMeta.rawcode = algorithmRawCode diff --git a/src/hooks/useConsume/useConsume.ts b/src/hooks/useConsume/useConsume.ts index 3f40a4d..632c5bc 100644 --- a/src/hooks/useConsume/useConsume.ts +++ b/src/hooks/useConsume/useConsume.ts @@ -2,8 +2,7 @@ import { useState } from 'react' import { useOcean } from '../../providers' import { feedback } from '../../utils' import { DID, Logger, ServiceType } from '@oceanprotocol/lib' -import { getCheapestPool, checkAndBuyDT } from '../../utils/dtUtils' -const Decimal = require('decimal.js') +import { checkAndBuyDT } from '../../utils/dtUtils' interface UseConsume { consume: ( did: DID | string, @@ -46,10 +45,8 @@ function useConsume(): UseConsume { setConsumeError(undefined) try { - setStep(0) - await checkAndBuyDT(ocean,dataTokenAddress, account) - + await checkAndBuyDT(ocean, dataTokenAddress, account) setStep(1) const order = await ocean.assets.order(did, serviceType, accountId) diff --git a/src/hooks/useMetadata/useMetadata.ts b/src/hooks/useMetadata/useMetadata.ts index afd985e..1ce2be9 100644 --- a/src/hooks/useMetadata/useMetadata.ts +++ b/src/hooks/useMetadata/useMetadata.ts @@ -1,11 +1,5 @@ import { useState, useEffect } from 'react' -import { - DID, - DDO, - Metadata, - MetadataStore, - Logger, -} from '@oceanprotocol/lib' +import { DID, DDO, Metadata, MetadataStore, Logger } from '@oceanprotocol/lib' import { useOcean } from '../../providers' import ProviderStatus from '../../providers/OceanProvider/ProviderStatus' import { getBestDataTokenPrice } from '../../utils/dtUtils' @@ -38,7 +32,7 @@ function useMetadata(did?: DID | string): UseMetadata { return ddo } - async function getBestPrice(dataTokenAddress:string): Promise { + async function getBestPrice(dataTokenAddress: string): Promise { return await getBestDataTokenPrice(ocean, accountId, dataTokenAddress) } diff --git a/src/hooks/usePublish/usePublish.ts b/src/hooks/usePublish/usePublish.ts index 2523373..9639b5a 100644 --- a/src/hooks/usePublish/usePublish.ts +++ b/src/hooks/usePublish/usePublish.ts @@ -26,7 +26,7 @@ interface UsePublish { } function usePublish(): UsePublish { - const { ocean, status, account, accountId, config } = useOcean() + const { ocean, status, account, accountId, config } = useOcean() const [isLoading, setIsLoading] = useState(false) const [publishStep, setPublishStep] = useState() const [publishStepText, setPublishStepText] = useState() @@ -73,7 +73,6 @@ function usePublish(): UsePublish { const timeout = 0 const services: Service[] = [] - const price = ocean.datatokens.toWei('1') switch (serviceType) { case 'access': { @@ -156,10 +155,6 @@ function usePublish(): UsePublish { await ocean.datatokens.mint(tokenAddress, accountId, tokensToMint) } - async function createBalancerPool() { - ocean - } - return { publish, mint, diff --git a/src/utils/dtUtils.ts b/src/utils/dtUtils.ts index 0df62b4..fdd32d5 100644 --- a/src/utils/dtUtils.ts +++ b/src/utils/dtUtils.ts @@ -1,14 +1,25 @@ import { Logger, Ocean, Account } from '@oceanprotocol/lib' -const Decimal = require('decimal.js') -export async function getCheapestPool(ocean: Ocean, accountId: string, dataTokenAddress: string): Promise<{ poolAddress: string, poolPrice: string }> { - const tokenPools = await ocean.pool.searchPoolforDT(accountId, dataTokenAddress) +const Decimal = await require('decimal.js') +export async function getCheapestPool( + ocean: Ocean, + accountId: string, + dataTokenAddress: string +): Promise<{ poolAddress: string; poolPrice: string }> { + const tokenPools = await ocean.pool.searchPoolforDT( + accountId, + dataTokenAddress + ) Logger.log('DT Pool found', tokenPools) let cheapestPoolAddress let cheapestPoolPrice = 999999 if (tokenPools) { for (let i = 0; i < tokenPools.length; i++) { - const poolPrice = await ocean.pool.getOceanNeeded(accountId, tokenPools[i], '1') + const poolPrice = await ocean.pool.getOceanNeeded( + accountId, + tokenPools[i], + '1' + ) Logger.log('Pool price ', tokenPools[i], poolPrice) if (Decimal(poolPrice) < cheapestPoolPrice) { cheapestPoolPrice = Decimal(poolPrice) @@ -17,31 +28,51 @@ export async function getCheapestPool(ocean: Ocean, accountId: string, dataToken } } - return { poolAddress: cheapestPoolAddress, poolPrice: cheapestPoolPrice.toString() } - + return { + poolAddress: cheapestPoolAddress, + poolPrice: cheapestPoolPrice.toString() + } } -export async function getBestDataTokenPrice(ocean: Ocean, accountId: string, dataTokenAddress: string): Promise { +export async function getBestDataTokenPrice( + ocean: Ocean, + accountId: string, + dataTokenAddress: string +): Promise { const bestPool = await getCheapestPool(ocean, accountId, dataTokenAddress) return bestPool.poolPrice } -export async function checkAndBuyDT(ocean: Ocean, dataTokenAddress: string, account: Account) { - const userOwnedTokens = await ocean.accounts.getTokenBalance(dataTokenAddress, account) +export async function checkAndBuyDT( + ocean: Ocean, + dataTokenAddress: string, + account: Account +) { + const userOwnedTokens = await ocean.accounts.getTokenBalance( + dataTokenAddress, + account + ) Logger.log(`User has ${userOwnedTokens} tokens`) let cheapestPool if (userOwnedTokens === '0') { - cheapestPool = await getCheapestPool(ocean,account.getId(),dataTokenAddress) - Decimal.set({ precision: 5}) - const price = (new Decimal(cheapestPool.poolPrice)).times(1.05).toString() - const maxPrice = (new Decimal(cheapestPool.poolPrice)).times(2).toString() - Logger.log('Buying token', cheapestPool, account.getId(),price) - let buyResponse = await ocean.pool.buyDT(account.getId(), cheapestPool.poolAddress, '1', price, maxPrice) + cheapestPool = await getCheapestPool( + ocean, + account.getId(), + dataTokenAddress + ) + Decimal.set({ precision: 5 }) + const price = new Decimal(cheapestPool.poolPrice).times(1.05).toString() + const maxPrice = new Decimal(cheapestPool.poolPrice).times(2).toString() + Logger.log('Buying token', cheapestPool, account.getId(), price) + const buyResponse = await ocean.pool.buyDT( + account.getId(), + cheapestPool.poolAddress, + '1', + price, + maxPrice + ) Logger.log('DT buy response', buyResponse) - - if (buyResponse === null) { - return - } + return buyResponse } -} \ No newline at end of file +}