@@ -305,10 +305,11 @@ export class Commands {
305305 return ;
306306 }
307307 let providerURI = this . oceanNodeUrl ;
308+ const ddoInstance = DDOManager . getDDOClass ( ddos [ 0 ] ) ;
309+ const { services } = ddoInstance . getDDOFields ( ) ;
308310 if ( ddos . length > 0 ) {
309- providerURI = ddos [ 0 ] . services [ 0 ] . serviceEndpoint ;
311+ providerURI = services [ 0 ] . serviceEndpoint ;
310312 }
311-
312313 const algoDdo = await this . aquarius . waitForIndexer (
313314 args [ 2 ] ,
314315 null ,
@@ -338,7 +339,7 @@ export class Commands {
338339 // NO chainId needed anymore (is not part of ComputeEnvironment spec anymore)
339340 // const chainComputeEnvs = computeEnvs[computeEnvID]; // was algoDdo.chainId
340341 let computeEnv = null ; // chainComputeEnvs[0];
341-
342+ console . log ( 'computeEnvs: ' , computeEnvs ) ;
342343 if ( computeEnvID && computeEnvID . length > 1 ) {
343344 for ( const index in computeEnvs ) {
344345 if ( computeEnvID == computeEnvs [ index ] . id ) {
@@ -354,18 +355,32 @@ export class Commands {
354355 ) ;
355356 return ;
356357 }
357-
358+ const ddoAlgoInstance = DDOManager . getDDOClass ( algoDdo ) ;
359+ const { services : servicesAlgo , metadata : metadataAlgo , version : versionAlgo } = ddoAlgoInstance . getDDOFields ( ) ;
358360 const algo : ComputeAlgorithm = {
359361 documentId : algoDdo . id ,
360- serviceId : algoDdo . services [ 0 ] . id ,
361- meta : algoDdo . metadata . algorithm ,
362+ serviceId : servicesAlgo [ 0 ] . id ,
363+ meta : metadataAlgo . algorithm ,
362364 } ;
363365
366+ const assetAlgo : {
367+ documentId : string ;
368+ serviceId : string ;
369+ asset : Asset ;
370+ version ?: string ;
371+ } = {
372+ documentId : algoDdo . id ,
373+ serviceId : servicesAlgo [ 0 ] . id ,
374+ asset : algoDdo ,
375+ version : versionAlgo
376+ } ;
364377 const assets = [ ] ;
365378 for ( const dataDdo in ddos ) {
379+ const ddoInstanceDdo = DDOManager . getDDOClass ( ddos [ dataDdo ] ) ;
380+ const { services : servicesDdo , version : versionDdo } = ddoInstanceDdo . getDDOFields ( ) ;
366381 const canStartCompute = isOrderable (
367382 ddos [ dataDdo ] ,
368- ddos [ dataDdo ] . services [ 0 ] . id ,
383+ servicesDdo [ 0 ] . id ,
369384 algo ,
370385 algoDdo
371386 ) ;
@@ -377,7 +392,9 @@ export class Commands {
377392 }
378393 assets . push ( {
379394 documentId : ddos [ dataDdo ] . id ,
380- serviceId : ddos [ dataDdo ] . services [ 0 ] . id ,
395+ serviceId : servicesDdo [ 0 ] . id ,
396+ asset : ddos [ dataDdo ] ,
397+ version : versionDdo
381398 } ) ;
382399 }
383400 const maxJobDuration = Number ( args [ 4 ] )
@@ -459,6 +476,7 @@ export class Commands {
459476 ) ;
460477 return ;
461478 }
479+ const policiesServer = await getPolicyServerOBJs ( assets , assetAlgo , this . signer , this . oceanNodeUrl ) ;
462480 const parsedResources = JSON . parse ( resources ) ;
463481 const providerInitializeComputeJob =
464482 await ProviderInstance . initializeCompute (
@@ -470,7 +488,8 @@ export class Commands {
470488 providerURI ,
471489 this . signer , // V1 was this.signer.getAddress()
472490 parsedResources ,
473- Number ( chainId )
491+ Number ( chainId ) ,
492+ policiesServer
474493 ) ;
475494 if (
476495 ! providerInitializeComputeJob ||
@@ -535,8 +554,10 @@ export class Commands {
535554 return ;
536555 }
537556 let providerURI = this . oceanNodeUrl ;
557+ const ddoInstance = DDOManager . getDDOClass ( ddos [ 0 ] ) ;
558+ const { services } = ddoInstance . getDDOFields ( ) ;
538559 if ( ddos . length > 0 ) {
539- providerURI = ddos [ 0 ] . services [ 0 ] . serviceEndpoint ;
560+ providerURI = services [ 0 ] . serviceEndpoint ;
540561 }
541562 const algoDdo = await this . aquarius . waitForIndexer (
542563 args [ 2 ] ,
@@ -582,18 +603,34 @@ export class Commands {
582603 ) ;
583604 return ;
584605 }
585-
606+ const ddoInstanceAlgo = DDOManager . getDDOClass ( algoDdo ) ;
607+ const { services : servicesAlgo , metadata : metadataAlgo , version : versionAlgo } = ddoInstanceAlgo . getDDOFields ( ) ;
586608 const algo : ComputeAlgorithm = {
587609 documentId : algoDdo . id ,
588- serviceId : algoDdo . services [ 0 ] . id ,
589- meta : algoDdo . metadata . algorithm ,
610+ serviceId : servicesAlgo [ 0 ] . id ,
611+ meta : metadataAlgo . algorithm ,
612+ } ;
613+
614+ const assetAlgo : {
615+ documentId : string ;
616+ serviceId : string ;
617+ asset : Asset ;
618+ version ?: string ;
619+ } = {
620+ documentId : algoDdo . id ,
621+ serviceId : servicesAlgo [ 0 ] . id ,
622+ asset : algoDdo ,
623+ version : versionAlgo
590624 } ;
591625
592626 const assets = [ ] ;
593627 for ( const dataDdo in ddos ) {
628+ const ddoInstanceDdo = DDOManager . getDDOClass ( ddos [ dataDdo ] ) ;
629+ const { services : servicesDdo , version : versionDdo } = ddoInstanceDdo . getDDOFields ( ) ;
630+
594631 const canStartCompute = isOrderable (
595632 ddos [ dataDdo ] ,
596- ddos [ dataDdo ] . services [ 0 ] . id ,
633+ servicesDdo [ 0 ] . id ,
597634 algo ,
598635 algoDdo
599636 ) ;
@@ -605,7 +642,9 @@ export class Commands {
605642 }
606643 assets . push ( {
607644 documentId : ddos [ dataDdo ] . id ,
608- serviceId : ddos [ dataDdo ] . services [ 0 ] . id ,
645+ serviceId : servicesDdo [ 0 ] . id ,
646+ asset : ddos [ dataDdo ] ,
647+ version : versionDdo
609648 } ) ;
610649 }
611650 const providerInitializeComputeJob = args [ 4 ] ; // provider fees + payment
@@ -793,6 +832,7 @@ export class Commands {
793832 const output : ComputeOutput = {
794833 metadataUri : await getMetadataURI ( ) ,
795834 } ;
835+ const policiesServer = await getPolicyServerOBJs ( assets , assetAlgo , this . signer , this . oceanNodeUrl ) ;
796836
797837 const computeJobs = await ProviderInstance . computeStart (
798838 providerURI ,
@@ -808,6 +848,7 @@ export class Commands {
808848 null ,
809849 // additionalDatasets, only c2d v1
810850 output ,
851+ policiesServer
811852 ) ;
812853
813854 console . log ( "compute jobs: " , computeJobs ) ;
0 commit comments