[][src]Crate pinata_sdk

The pinata_sdk provides the easieset path for interacting with the Pinata API.

Setup

Add the crate as a dependency to your codebase

[dependencies]
pinata_sdk = "0.1.0"

Initializing the API

use pinata_sdk::PinataApi;
 
let api = PinataApi::new("api_key", "secret_api_key").unwrap();
 
// test that you can connect to the API:
let result = api.test_authentication().await;
if let Ok(_) = result {
  // credentials are correct and other api calls can be made
}

Usage

1. Pinning a file

Send a file to pinata for direct pinning to IPFS.

use pinata_sdk::{ApiError, PinataApi, PinByFile};
 
let api = PinataApi::new("api_key", "secret_api_key").unwrap();
 
let result = api.pin_file(PinByFile::new("file_or_dir_path")).await;
 
if let Ok(pinned_object) = result {
  let hash = pinned_object.ipfs_hash;
}

If a directory path is used to construct PinByFile, then pin_file() will upload all the contents of the file to be pinned on pinata.

2. Pinning a JSON object

You can send a JSON serializable to pinata for direct pinning to IPFS.

use pinata_sdk::{ApiError, PinataApi, PinByJson};
use std::collections::HashMap;
 
let api = PinataApi::new("api_key", "secret_api_key").unwrap();
 
// HashMap derives serde::Serialize
let mut json_data = HashMap::new();
json_data.insert("name", "user");
 
let result = api.pin_json(PinByJson::new(json_data)).await;
 
if let Ok(pinned_object) = result {
  let hash = pinned_object.ipfs_hash;
}

3. Unpinning

You can unpin using the PinataApi::unpin() function by passing in the CID hash of the already pinned content.

Structs

HashPinPolicy

Represents a PinPolicy linked to a particular ipfs pinned hash

PinByFile

Request object to pin a file

PinByHash

Request object to pin hash of an already existing IPFS hash to pinata.

PinByHashResult

Represents response of a pinByHash request.

PinByJson

Request object to pin json

PinJob

Pin Job Record

PinJobs

Represents a list of pin job records for a set of filters.

PinJobsFilter

Filter parameters for fetching PinJobs

PinMetadata

Pin metadata stored along with files pinned.

PinOptions

Used to add additional options when pinning by hash

PinPolicy

Pinata Pin Policy Regions

PinataApi

API struct. Exposes functions to interact with the Pinata API

PinnedObject

Represents a PinnedObject

RegionPolicy

Region and desired replication for that region

Enums

ApiError

All possible error returned from this SDK defined as variants of this enum.

JobStatus

Status of Jobs

Region

All the currently supported regions on Pinata

SortDirection

Sort Direction