import * as React from "react"; import * as System from "~/components/system"; import SystemPage from "~/components/system/SystemPage"; import ViewSourceLink from "~/components/system/ViewSourceLink"; import CodeBlock from "~/components/system/CodeBlock"; const EXAMPLE_CODE = `import * as React from 'react'; import { CreateFilecoinStorageDeal } from 'slate-react-system'; import { createPow } from "@textile/powergate-client"; const PowerGate = createPow({ host: "http://pow.slate.textile.io:6002" }); class Example extends React.Component { componentDidMount = async () => { const FFS = await PowerGate.ffs.create(); const token = FFS.token ? FFS.token : null; PowerGate.setToken(token); this.setState({ token }); } _handleSubmit = async (data) => { const file = data.file.files[0]; var buffer = []; // NOTE(jim): A little hacky... const getByteArray = async () => new Promise((resolve) => { const reader = new FileReader(); reader.onloadend = function(e) { if (e.target.readyState == FileReader.DONE) { buffer = new Uint8Array(e.target.result); } resolve(); }; reader.readAsArrayBuffer(file); }); await getByteArray(); const { cid } = await PowerGate.ffs.stage(buffer); const { jobId } = await PowerGate.ffs.pushStorageConfig(cid); const cancel = PowerGate.ffs.watchJobs((job) => { console.log(job); }, jobId); } render() { return ( ); } } `; export default class SystemPageMakeStorageDeal extends React.Component { _handleSubmit = async ({ file }) => { // TODO(jim): Send file data to server. alert(file); }; render() { return ( Make a Storage Deal{" "}

Here is a partial example of using{" "} Textile's Powergate {" "} to make a data storage deal. This example only provides an example for how to send your file to a server.

There will be an example of how to make a storage deal coming soon.





Code

{EXAMPLE_CODE}
); } }