[][src]Crate pinata_sdk

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

ChangePinMetadata

Pin metadata struct to update metadata of pinned items.

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

PinJobsFilterBuilder

Builder for PinJobsFilter.

PinList

Result of request to get pinList

PinListFilter

Options to filter your pin list based on a number of different options

PinListFilterBuilder

Builder for PinListFilter.

PinListItem

A pinned item gotten from get PinList request

PinListItemRegionPolicy

RegionPolicy active on the PinListItem

PinListMetadata

Pin metadata returns from PinList query

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

TotalPinnedData

Results of a call to get total users pinned data

Enums

ApiError

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

JobStatus

Status of Jobs

MetadataValue

Possible MetadaValues

PinListFilterStatus

Status used with PinListFilterBuilder to filter on pin list results.

Region

All the currently supported regions on Pinata

SortDirection

Sort Direction

Type Definitions

MetadataKeyValues

alias type for HashMap<String, MetadataValue>