mirror of
https://github.com/oceanprotocol/market.git
synced 2024-12-02 05:57:29 +01:00
Merge pull request #517 from oceanprotocol/issue510-match-providers-algo-dataset
Match dataset providers with private algorithms providers
This commit is contained in:
commit
c6c502188a
@ -158,7 +158,9 @@ export default function Compute({
|
||||
source.token
|
||||
)
|
||||
setDdoAlgorithmList(gueryResults.results)
|
||||
const datasetComputeService = ddo.findServiceByType('compute')
|
||||
algorithmSelectionList = await transformDDOToAssetSelection(
|
||||
datasetComputeService?.serviceEndpoint,
|
||||
gueryResults.results,
|
||||
config.metadataCacheUri,
|
||||
[]
|
||||
@ -385,7 +387,10 @@ export default function Compute({
|
||||
text="This algorithm has been set to private by the publisher and can't be downloaded. You can run it against any allowed data sets though!"
|
||||
state="info"
|
||||
/>
|
||||
<AlgorithmDatasetsListForCompute algorithmDid={ddo.id} />
|
||||
<AlgorithmDatasetsListForCompute
|
||||
algorithmDid={ddo.id}
|
||||
dataset={ddo}
|
||||
/>
|
||||
</>
|
||||
) : (
|
||||
<Formik
|
||||
|
@ -176,7 +176,7 @@ export default function Consume({
|
||||
</div>
|
||||
</div>
|
||||
{type === 'algorithm' && (
|
||||
<AlgorithmDatasetsListForCompute algorithmDid={ddo.id} />
|
||||
<AlgorithmDatasetsListForCompute algorithmDid={ddo.id} dataset={ddo} />
|
||||
)}
|
||||
<footer className={styles.feedback}>
|
||||
<Web3Feedback isBalanceSufficient={isBalanceSufficient} />
|
||||
|
@ -54,7 +54,9 @@ export default function FormEditComputeDataset({
|
||||
config.metadataCacheUri,
|
||||
source.token
|
||||
)
|
||||
const datasetComputeService = ddo.findServiceByType('compute')
|
||||
const algorithmSelectionList = await transformDDOToAssetSelection(
|
||||
datasetComputeService?.serviceEndpoint,
|
||||
querryResult.results,
|
||||
config.metadataCacheUri,
|
||||
publisherTrustedAlgorithms
|
||||
|
@ -5,11 +5,14 @@ import { AssetSelectionAsset } from '../../molecules/FormFields/AssetSelection'
|
||||
import AssetComputeList from '../../molecules/AssetComputeList'
|
||||
import { useOcean } from '../../../providers/Ocean'
|
||||
import { useAsset } from '../../../providers/Asset'
|
||||
import { DDO } from '@oceanprotocol/lib'
|
||||
|
||||
export default function AlgorithmDatasetsListForCompute({
|
||||
algorithmDid
|
||||
algorithmDid,
|
||||
dataset
|
||||
}: {
|
||||
algorithmDid: string
|
||||
dataset: DDO
|
||||
}): ReactElement {
|
||||
const { config } = useOcean()
|
||||
const { type } = useAsset()
|
||||
@ -18,8 +21,10 @@ export default function AlgorithmDatasetsListForCompute({
|
||||
|
||||
useEffect(() => {
|
||||
async function getDatasetsAllowedForCompute() {
|
||||
const datasetComputeService = dataset.findServiceByType('compute')
|
||||
const datasets = await getAlgorithmDatasetsForCompute(
|
||||
algorithmDid,
|
||||
datasetComputeService?.serviceEndpoint,
|
||||
config.metadataCacheUri
|
||||
)
|
||||
setDatasetsForCompute(datasets)
|
||||
|
@ -118,6 +118,7 @@ export async function getAssetsNames(
|
||||
}
|
||||
|
||||
export async function transformDDOToAssetSelection(
|
||||
datasetProviderEndpoint: string,
|
||||
ddoList: DDO[],
|
||||
metadataCacheUri: string,
|
||||
selectedAlgorithms?: PublisherTrustedAlgorithm[]
|
||||
@ -126,14 +127,22 @@ export async function transformDDOToAssetSelection(
|
||||
const didList: string[] = []
|
||||
const priceList: PriceList = await getAssetsPriceList(ddoList)
|
||||
const symbolList: any = {}
|
||||
const didProviderEndpointMap: any = {}
|
||||
for (const ddo of ddoList) {
|
||||
didList.push(ddo.id)
|
||||
symbolList[ddo.id] = ddo.dataTokenInfo.symbol
|
||||
const algoComputeService = ddo.findServiceByType('compute')
|
||||
algoComputeService?.serviceEndpoint &&
|
||||
(didProviderEndpointMap[ddo.id] = algoComputeService?.serviceEndpoint)
|
||||
}
|
||||
const ddoNames = await getAssetsNames(didList, metadataCacheUri, source.token)
|
||||
const algorithmList: AssetSelectionAsset[] = []
|
||||
didList?.forEach((did: string) => {
|
||||
if (priceList[did]) {
|
||||
if (
|
||||
priceList[did] &&
|
||||
(!didProviderEndpointMap[did] ||
|
||||
didProviderEndpointMap[did] === datasetProviderEndpoint)
|
||||
) {
|
||||
let selected = false
|
||||
selectedAlgorithms?.forEach((algorithm: PublisherTrustedAlgorithm) => {
|
||||
if (algorithm.did === did) {
|
||||
@ -162,6 +171,7 @@ export async function transformDDOToAssetSelection(
|
||||
|
||||
export async function getAlgorithmDatasetsForCompute(
|
||||
algorithmId: string,
|
||||
datasetProviderUri: string,
|
||||
metadataCacheUri: string
|
||||
): Promise<AssetSelectionAsset[]> {
|
||||
const source = axios.CancelToken.source()
|
||||
@ -183,6 +193,7 @@ export async function getAlgorithmDatasetsForCompute(
|
||||
return []
|
||||
}
|
||||
const datasets = await transformDDOToAssetSelection(
|
||||
datasetProviderUri,
|
||||
computeDatasetsForCurrentAlgorithm,
|
||||
metadataCacheUri,
|
||||
[]
|
||||
|
Loading…
Reference in New Issue
Block a user