import * as React from "react"; import * as System from "~/components/system"; import * as Constants from "~/common/constants"; import Group from "~/components/system/Group"; import SystemPage from "~/components/system/SystemPage"; import ViewSourceLink from "~/components/system/ViewSourceLink"; import { createPow, ffsOptions } from "@textile/powergate-client"; const PowerGate = createPow({ host: "http://pow.slate.textile.io:6002" }); const EXAMPLE_CODE = `import * as React from 'react'; import { FilecoinStorageDealsList, FilecoinRetrievalDealsList } from 'slate-react-system'; import { createPow, ffsOptions } 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.storageList = await PowerGate.ffs.listStorageDealRecords( ffsOptions.withIncludeFinal(true), ffsOptions.withIncludePending(true), ffsOptions.withFromAddresses( "t3ual5q5qo5wolfxsui4ciujfucqwf6gqso4lettcjwl2tyismgol7c4tngvoono5rmytuqotye7oosfjv6g7a", "t3solnyrrblqlmvi6gmzewzvu62vs7uqvkl22yemzr63bcylbaaqsg44mnipepuafg7efzzx4zwcsi66jgze3q" ) ); this.retrievalList = await PowerGate.ffs.listRetrievalDealRecords(); } render() { return ( ); } } `; const storageList = [ { addr: "t3solnyrrblqlmvi6gmzewzvu62vs7uqvkl22yemzr63bcylbaaqsg44mnipepuafg7efzzx4zwcsi66jgze3q", dealInfo: { activationEpoch: 0, dealId: 0, duration: 1000, miner: "t0101180", msg: "", pieceCid: "b", pricePerEpoch: 1220, proposalCid: "bafyreifvjnupitsw3zwykymlnuruqqpyxhmpm5xo6cf72e7hdxscqistea", size: 0, startEpoch: 0, stateId: 0, stateName: "", }, pending: true, rootCid: "QmctRftYBfbWAtfz9svcprTnmah4eFJXdAUuBhAA6Z6c84", time: 1594960648, }, { addr: "t3ual5q5qo5wolfxsui4ciujfucqwf6gqso4lettcjwl2tyismgol7c4tngvoono5rmytuqotye7oosfjv6g7a", dealInfo: { activationEpoch: 0, dealId: 0, duration: 1000, miner: "t0101180", msg: "", pieceCid: "b", pricePerEpoch: 4882, proposalCid: "bafyreihej2ejt32ackx5h6n5vfgdjulya6lqtvhim22scnxbnw2kf3f6bm", size: 0, startEpoch: 0, stateId: 0, stateName: "", }, pending: false, rootCid: "QmUXsfqC1bHbZyD7T341rBXQCfDxA8UaiAmziHcwRRZHsQ", time: 1594960738, }, ]; const retrievalList = [ { addr: "t3solnyrrblqlmvi6gmzewzvu62vs7uqvkl22yemzr63bcylbaaqsg44mnipepuafg7efzzx4zwcsi66jgze3q", dealInfo: { activationEpoch: 0, dealId: 0, duration: 1000, miner: "t0101180", msg: "", pieceCid: "b", pricePerEpoch: 1220, proposalCid: "bafyreifvjnupitsw3zwykymlnuruqqpyxhmpm5xo6cf72e7hdxscqistea", rootCid: "QmctRftYBfbWAtfz9svcprTnmah4eFJXdAUuBhAA6Z6c84", size: 0, startEpoch: 0, stateId: 0, stateName: "", }, time: 1594960648, }, { addr: "t3solnyrrblqlmvi6gmzewzvu62vs7uqvkl22yemzr63bcylbaaqsg44mnipepuafg7efzzx4zwcsi66jgze3q", dealInfo: { activationEpoch: 0, dealId: 0, duration: 1000, miner: "t0101180", msg: "", pieceCid: "b", pricePerEpoch: 4882, proposalCid: "bafyreihej2ejt32ackx5h6n5vfgdjulya6lqtvhim22scnxbnw2kf3f6bm", rootCid: "QmUXsfqC1bHbZyD7T341rBXQCfDxA8UaiAmziHcwRRZHsQ", size: 0, startEpoch: 0, stateId: 0, stateName: "", }, time: 1594960738, }, ]; export default class SystemPageStorageDeals extends React.Component { render() { return ( View Storage and Retrieval Deals{" "}

Here is an example of an experience for getting Filecoin Storage and Retrieval deals from{" "} Textile's Powergate .






Code

You must include at least one of{" "} withIncludeFinal(true) or{" "} withIncludePending(true) to ensure you get a response for{" "} listStorageDealRecords. Other optional ffsOptions that can be used to specify what data you get back are noted in the table below.

{EXAMPLE_CODE}


Accepted Options Properties

To define what type of data you get back from{" "} listStorageDealRecords and{" "} listRetrievalDealRecords, pass in a destructured list of the below{" "} ffsOption functions.
Each of the ffsOption functions take a parameter of their own, whose type is detailed in the table below.

withIncludeFinal ), b: "boolean", c: "false", d: "Specifies whether or not to include final deals in the results. Ignored for listRetrievalDealRecords", }, { id: 2, a: ( withIncludePending ), b: "boolean", c: "false", d: "Specifies whether or not to include pending deals in the results. Ignored for listRetrievalDealRecords", }, { id: 3, a: "withDataCids", b: "...string[]", c: "null", d: "Limits the results to deals for the provided data cids", }, { id: 4, a: "withFromAddresses", b: "...string[]", c: "null", d: "Limits the results to deals initiated from the provided wallet addresses", }, { id: 5, a: "withAscending", b: "boolean", c: "false", d: "Specifies to sort the results in ascending order", }, ], }} />
); } }