mirror of
https://github.com/oceanprotocol-archive/squid-js.git
synced 2024-02-02 15:31:51 +01:00
106 lines
3.1 KiB
TypeScript
106 lines
3.1 KiB
TypeScript
import { MetaData, MetaDataAlgorithm, Ocean, Account } from '../../../src' // @oceanprotocol/squid
|
|
import { ServiceCompute } from '../../../src/ddo/Service'
|
|
|
|
const metadata: Partial<MetaData> = {
|
|
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<MetaData> => ({
|
|
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<ServiceCompute> => {
|
|
const { templates } = ocean.keeper
|
|
const serviceAgreementTemplate = await templates.escrowComputeExecutionTemplate.getServiceAgreementTemplate()
|
|
|
|
return {
|
|
type: 'compute',
|
|
index: 3,
|
|
serviceEndpoint: ocean.brizo.getComputeEndpoint(),
|
|
templateId: templates.escrowAccessSecretStoreTemplate.getId(),
|
|
attributes: {
|
|
main: {
|
|
creator: publisher.getId(),
|
|
datePublished,
|
|
price,
|
|
timeout: 3600
|
|
},
|
|
serviceAgreementTemplate
|
|
}
|
|
}
|
|
}
|