UNPKG

@ixily/activ

Version:

Alpha Capture Trade Idea Verification. Blockchain ownership proven trade ideas and strategies.

41 lines (35 loc) 955 B
import { IpfsStoreProvider } from '../../interfaces' const state = { providers: [] as IpfsStoreProvider[], } const addProvider = async (provider: IpfsStoreProvider) => { state.providers.push(provider) } const add = async (obj: any) => { if (state.providers.length === 0) throw new Error('No providers added.') for (const provider of state.providers) { try { const cid = await provider.add(obj) return cid } catch (e) { console.error('Error adding object to IPFS: ', e) console.error('Provider: ', provider.name) } } throw new Error('Failed to add object to IPFS.') } const recover = async <T>(cid: string) => { if (state.providers.length === 0) throw new Error('No providers added.') for (const provider of state.providers) { try { const obj = await provider.recover(cid) if (obj !== undefined) return obj as T } catch (e) {} } return undefined } export const IpfsStoreModule = { addProvider, add, recover, }