From 65b99456a63f3239005f4b1dddf6d207b3e45173 Mon Sep 17 00:00:00 2001 From: Matthias Kretschmann Date: Tue, 28 Jan 2020 13:01:39 +0100 Subject: [PATCH] add Compute component example --- src/Compute.js | 62 ++++++++++++++++++++++++++++++++++++++++++++++++++ src/index.js | 3 +++ 2 files changed, 65 insertions(+) create mode 100644 src/Compute.js diff --git a/src/Compute.js b/src/Compute.js new file mode 100644 index 0000000..70a1a0a --- /dev/null +++ b/src/Compute.js @@ -0,0 +1,62 @@ +import React, { useState } from 'react' +import asset from './asset' + +export default function Compute({ ocean, web3 }) { + const [ddoAsset, setDdoAsset] = useState('') + const [ddoAlgorithm, setDdoAlgorithm] = useState('') + + // publish a dataset and an algorithm + async function publish() { + try { + const accounts = await ocean.accounts.list() + const ddoAssetNew = await ocean.assets.create(asset, accounts[0]) + const ddoAlgorithmNew = await ocean.assets.create(asset, accounts[0]) + + console.log('Asset successfully submitted.') + console.log(ddoAssetNew) + console.log(ddoAlgorithmNew) + // keep track of this registered asset for consumption later on + setDdoAsset(ddoAssetNew) + setDdoAlgorithm(ddoAlgorithmNew) + alert( + 'Asset successfully submitted. Look into your console to see the response DDO object.' + ) + } catch (error) { + console.error(error.message) + } + } + + // order and start the compute service + async function start() { + try { + const accounts = await ocean.accounts.list() + + // order the compute service + const agreementId = await ocean.compute.order(accounts[0], ddoAsset.id) + + // start a compute job + const status = await ocean.compute.start( + accounts[0], + agreementId, + ddoAlgorithm.id + ) + console.log(status) + } catch (error) { + console.error(error.message) + } + } + + // get results + + return ( + <> +

Compute

+ + + + ) +} diff --git a/src/index.js b/src/index.js index 9d8b74c..7f6395c 100644 --- a/src/index.js +++ b/src/index.js @@ -3,6 +3,7 @@ import ReactDOM from 'react-dom' import { Ocean } from '@oceanprotocol/squid' import Web3 from 'web3' import asset from './asset' +import Compute from './Compute' let web3 @@ -119,6 +120,8 @@ class App extends Component { +
+ ) }