2.0.0 • Published 3 years ago

@metaplex/arweave-cost v2.0.0

Weekly downloads
-
License
Apache-2.0
Repository
github
Last release
3 years ago

Arweave cost

Calculates the cost of uploading files to Arweave using arbundles.

Installation

npm i @metaplex/arweave-cost

Use

const { calculate } = require('@metaplex/arweave-cost');

const cost = await calculate([fileSizeInBytes0, fileSizeInBytes1, ...]);

console.log(`The cost to store the files is ${cost.solana} SOL or ${cost.arweave} AR`);

Methods

calculate

Returns an object of storage cost information.

const fileSizes = [2000, 32934]; // in bytes
const result = await calculate(fileSizes);
console.log(result)

// {
//   arweave: 0.0009903326292,         // The cost to store the files in AR
//   solana: 0.00025095896478276764,   // The cost in to store the files in SOL
//   arweavePrice: 52.41,              // Current AR price
//   solanaPrice: 206.82,              // Current SOL price
//   exchangeRate: 0.2534087612416594, // AR/SOL rate
//   totalBytes: 2024000,              // Total bytes calculated
//   byteCost: 861158808,              // Cost of storage in winstons without fees
//   fee: 129173821.19999999           // Total storage fees in winstons
// }

fetchArweaveStorageCost

Retreives the current storage cost (in Winstons) of a given number of bytes on the Arweave network (without fees). Values are cached internally for 15 seconds.

const arweaveCost = await fetchArweaveStorageCost(bytes);
console.log(arweaveCost); // 1798603

fetchPrices

Retreives the current price of AR and SOL from coingecko API. Values are cached internally for 15 seconds.

// Fetch the current arweave and solana prices
const rates = await fetchTokenPrices();
console.log(rates.solana.usd, rates.arweave.usd); // 206.4  52.29

Development

Running tests

npm test

Debugging

This module uses the debug module. To enable debug logs, set the DEBUG environment variable:

DEBUG=arweave-cost npm test