@@ -34,7 +34,7 @@ import { Signer, ethers, getAddress } from "ethers";
3434import { interactiveFlow } from "./interactiveFlow.js" ;
3535import { publishAsset } from "./publishAsset.js" ;
3636import chalk from 'chalk' ;
37- import { getPolicyServerOBJ } from "./policyServerhELPER .js" ;
37+ import { getPolicyServerOBJ , getPolicyServerOBJs } from "./policyServerHelper .js" ;
3838
3939export class Commands {
4040 public signer : Signer ;
@@ -867,8 +867,10 @@ export class Commands {
867867 return ;
868868 }
869869 let providerURI = this . oceanNodeUrl ;
870+ const ddoInstance = DDOManager . getDDOClass ( ddos [ 0 ] ) ;
871+ const { services } = ddoInstance . getDDOFields ( ) ;
870872 if ( ddos . length > 0 ) {
871- providerURI = ddos [ 0 ] . services [ 0 ] . serviceEndpoint ;
873+ providerURI = services [ 0 ] . serviceEndpoint ;
872874 }
873875
874876 const algoDdo = await this . aquarius . waitForIndexer (
@@ -888,7 +890,6 @@ export class Commands {
888890 const computeEnvs = await ProviderInstance . getComputeEnvironments (
889891 this . oceanNodeUrl
890892 ) ;
891-
892893 if ( ! computeEnvs || computeEnvs . length < 1 ) {
893894 console . error (
894895 "Error fetching compute environments. No compute environments available."
@@ -904,7 +905,6 @@ export class Commands {
904905 // NO chainId needed anymore (is not part of ComputeEnvironment spec anymore)
905906 // const chainComputeEnvs = computeEnvs[computeEnvID]; // was algoDdo.chainId
906907 let computeEnv = null ; // chainComputeEnvs[0];
907-
908908 if ( computeEnvID && computeEnvID . length > 1 ) {
909909 for ( const env of computeEnvs ) {
910910 if ( computeEnvID == env . id && env . free ) {
@@ -921,18 +921,33 @@ export class Commands {
921921 ) ;
922922 return ;
923923 }
924-
924+ const ddoInstanceAlgo = DDOManager . getDDOClass ( algoDdo ) ;
925+ const { services : servicesAlgo , metadata : metadataAlgo , version : versionAlgo } = ddoInstanceAlgo . getDDOFields ( ) ;
925926 const algo : ComputeAlgorithm = {
926927 documentId : algoDdo . id ,
927- serviceId : algoDdo . services [ 0 ] . id ,
928- meta : algoDdo . metadata . algorithm ,
928+ serviceId : servicesAlgo [ 0 ] . id ,
929+ meta : metadataAlgo . algorithm ,
930+ } ;
931+
932+ const assetAlgo : {
933+ documentId : string ;
934+ serviceId : string ;
935+ asset : Asset ;
936+ version ?: string ;
937+ } = {
938+ documentId : algoDdo . id ,
939+ serviceId : servicesAlgo [ 0 ] . id ,
940+ asset : algoDdo ,
941+ version : versionAlgo
929942 } ;
930943
931944 const assets = [ ] ;
932945 for ( const dataDdo in ddos ) {
946+ const ddoInstanceDdo = DDOManager . getDDOClass ( ddos [ dataDdo ] ) ;
947+ const { services : servicesDdo , version : versionDdo } = ddoInstanceDdo . getDDOFields ( ) ;
933948 const canStartCompute = isOrderable (
934949 ddos [ dataDdo ] ,
935- ddos [ dataDdo ] . services [ 0 ] . id ,
950+ servicesDdo [ 0 ] . id ,
936951 algo ,
937952 algoDdo
938953 ) ;
@@ -944,7 +959,9 @@ export class Commands {
944959 }
945960 assets . push ( {
946961 documentId : ddos [ dataDdo ] . id ,
947- serviceId : ddos [ dataDdo ] . services [ 0 ] . id ,
962+ serviceId : servicesDdo [ 0 ] . id ,
963+ asset : ddos [ dataDdo ] ,
964+ version : versionDdo
948965 } ) ;
949966 }
950967
@@ -977,6 +994,7 @@ export class Commands {
977994 metadataUri : await getMetadataURI ( ) ,
978995 } ;
979996
997+ const policiesServer = await getPolicyServerOBJs ( assets , assetAlgo , this . signer , this . oceanNodeUrl ) ;
980998 const computeJobs = await ProviderInstance . freeComputeStart (
981999 providerURI ,
9821000 this . signer ,
@@ -986,7 +1004,8 @@ export class Commands {
9861004 null ,
9871005 null ,
9881006 null ,
989- output
1007+ output ,
1008+ policiesServer
9901009 ) ;
9911010
9921011 console . log ( "compute jobs: " , computeJobs ) ;
0 commit comments