import { MetaData, MetaDataAlgorithm, Ocean, Account } from '../../../src' // @oceanprotocol/squid import { ServiceCompute } from '../../../src/ddo/Service' const metadata: Partial = { main: { name: undefined, type: undefined, dateCreated: '2012-10-10T17:00:00Z', datePublished: '2012-10-10T17:00:00Z', author: 'Met Office', license: 'CC-BY', price: '21' + '0'.repeat(18), files: [ { index: 0, contentType: 'application/json', url: 'https://raw.githubusercontent.com/oceanprotocol/squid-js/master/package.json' }, { index: 1, contentType: 'text/plain', url: 'https://raw.githubusercontent.com/oceanprotocol/squid-js/master/README.md' } ] }, additionalInformation: { description: 'Weather information of UK including temperature and humidity', copyrightHolder: 'Met Office', workExample: '423432fsd,51.509865,-0.118092,2011-01-01T10:55:11+00:00,7.2,68', links: [ { name: 'Sample of Asset Data', type: 'sample', url: 'https://foo.com/sample.csv' }, { name: 'Data Format Definition', type: 'format', url: 'https://foo.com/sample.csv' } ], inLanguage: 'en', categories: ['Economy', 'Data Science'], tags: ['weather', 'uk', '2011', 'temperature', 'humidity'] } } const algorithmMeta: MetaDataAlgorithm = { language: 'scala', format: 'docker-image', version: '0.1', container: { entrypoint: 'ocean-entrypoint.sh', image: 'node', tag: '10' } } export const generateMetadata = ( name: string, type?: 'dataset' | 'algorithm', price?: number ): Partial => ({ main: { ...metadata.main, name, type: type || 'dataset', price: (price || 21) + '0'.repeat(18), algorithm: type === 'algorithm' ? algorithmMeta : undefined }, additionalInformation: { ...metadata.additionalInformation } }) export const getMetadata = (price?: number, type?: 'dataset' | 'algorithm') => generateMetadata('TestAsset', type, price) export const createComputeService = async ( ocean: Ocean, publisher: Account, price: string, datePublished: string ): Promise => { const { templates } = ocean.keeper const serviceAgreementTemplate = await templates.escrowComputeExecutionTemplate.getServiceAgreementTemplate() const name = 'dataAssetComputingServiceAgreement' return { type: 'compute', index: 3, serviceEndpoint: ocean.brizo.getComputeEndpoint(), templateId: templates.escrowComputeExecutionTemplate.getId(), attributes: { main: { creator: publisher.getId(), datePublished, price, timeout: 3600, name }, serviceAgreementTemplate } } }