sushiprices

Get current and historical prices from uniswap decentralized exchange. Request prices by block number, by date, or request price trend for the last 6 months.

Usage no npm install needed!

<script type="module">
  import sushiprices from 'https://cdn.skypack.dev/sushiprices';
</script>

README

🍣 Sushiprices

Overview

  • Historical Prices
  • Search by date
  • Search by block number
  • Request price trend over a time period

Usage

npm i sushiprices

Javascript

const Sushiprices = require("sushiprices");

const sushiprices = new Sushiprices(
  web3 // Web3 object, required.
);

// @dev Getting token price
let prices = await sushiprices.getPriceCurrent(
  "0xE41d2489571d322189246DaFA5ebDe1F4699F498" // @note will throw on err if invalid address 
);
Response is returned as an object
{
    sell: {
        eth: 705.1327229984558, // Sell price. Tokens to ETH.
        token: 0.0014181727317201672 // Sell price. ETH to token.
    },
    buy: {
        eth: 711.0950709237676, // Buy price. Tokens to ETH.
        token: 0.0014062817208125526 // Buy price. ETH to token.
    }
}
*/
Getting token price for given block

let priceByBlock = await sushiprices.getPriceByBlock(
  "0xE41d2489571d322189246DaFA5ebDe1F4699F498", // Token address, required. If address is not valid uniswap token will trow an error.
  9301593 // Block number, required.
);
// Returns an object:
{
    sell: {
        eth: 660.0046170034753, // Sell price. Tokens to ETH.
        token: 0.001515140916044129 // Sell price. ETH to token.
    },
    buy: {
        eth: 665.5473066426158, // Buy price. Tokens to ETH.
        token: 0.0015025227959294828 // Buy price. ETH to token.
    }
}
Or false if the price for a given block is not found
*/
Getting token price for given date
let priceByDate = await sushiprices.getPriceByDate(
  "0xE41d2489571d322189246DaFA5ebDe1F4699F498", // Token address, required. If address is not valid uniswap token will trow an error.
  "2019-09-02T12:00:00Z" // Date, required. Any valid moment.js value: string, milliseconds, Date() object, moment() object.
);

/*
Returns an object:
{
    sell: {
        eth: 1049.308625825207, // Sell price. Tokens to ETH.
        token: 0.0009530084623230564 // Sell price. ETH to token.
    },
    buy: {
        eth: 1064.442519929068, // Buy price. Tokens to ETH.
        token: 0.000939458901046754 // Buy price. ETH to token.
    }
}
Or false if the price for a given date is not found
*/
Price trend over 1h, 12h, 1d, 7d, 1m, 3m or 6m
// 
let priceTrend = await sushiprices.getPriceTrend(
  "0xE41d2489571d322189246DaFA5ebDe1F4699F498" // Token address, required. If address is not valid uniswap token will trow an error.
);

/*
Returns an object:
{
    '1h': {
        sell: { eth: 706.3144725491642, token: 0.0014157999571931372 },
        buy: { eth: 712.2882035638517, token: 0.0014039261004135906 }
    },
    '12h': {
        sell: { eth: 706.3144725491642, token: 0.0014157999571931372 },
        buy: { eth: 712.2882035638517, token: 0.0014039261004135906 }
    },
    '1d': {
        sell: { eth: 667.0258578485677, token: 0.0014991922550430213 },
        buy: { eth: 672.6366528114763, token: 0.0014866867510419117 }
    },
    '7d': {
        sell: { eth: 702.3071222116168, token: 0.0014238784833206963 },
        buy: { eth: 708.8714215292256, token: 0.0014106930673587208 }
    },
    '3m': {
        sell: { eth: 568.2301739407155, token: 0.0017598502259479304 },
        buy: { eth: 574.8297096923411, token: 0.0017396456431161454 }
    },
    '1m': {
        sell: { eth: 668.2651684571723, token: 0.001496411974169933 },
        buy: { eth: 674.3174301154061, token: 0.0014829810936799529 }
    },
    '6m': {
        sell: { eth: 943.5426765954456, token: 0.001059835474117893 },
        buy: { eth: 955.6376597573558, token: 0.0010464217162118833 }
    }
}
*/

License

MIT