@rsksmart/rif-storage-pinning
Version:
Application for providing your storage space to other to use in exchange of RIF Tokens
43 lines (42 loc) • 1.5 kB
TypeScript
import ipfsClient from 'ipfs-http-client';
import CID from 'cids';
import type { ClientOptions } from 'ipfs-http-client/src/lib/core';
import BigNumber from 'bignumber.js';
import type { Provider } from '../definitions';
import { Job, JobsManager } from '../jobs-manager';
declare type IpfsClient = ReturnType<typeof ipfsClient>;
interface DagStat {
NumBlocks: number;
Size: number;
}
export declare class PinJob extends Job {
private readonly hash;
private readonly ipfs;
private readonly expectedSize;
private swarmAddresses;
constructor(ipfs: IpfsClient, hash: string, expectedSize: BigNumber, agreementReference: string);
private getPeerIdByAgreement;
private getPeer;
private swarmConnect;
private swarmDisconnect;
private pinProcess;
private getMetaFileSize;
private getActualFileSize;
_run(): Promise<void>;
}
export declare function getDagStat(nodeUrl: string): (cid: CID, options?: any) => Promise<DagStat>;
export declare class IpfsProvider implements Provider {
private readonly ipfs;
private jobsManager;
constructor(jobsManager: JobsManager, ipfs: IpfsClient);
static bootstrap(jobsManager: JobsManager, options?: ClientOptions | string): Promise<IpfsProvider>;
/**
*
* @param hash
* @param expectedSize
* @param agreementReference
*/
pin(hash: string, expectedSize: BigNumber, agreementReference: string): Promise<void>;
unpin(hash: string): Promise<void>;
}
export {};