Miss any of our Open RFC calls?Watch the recordings here! »

stacks-utils

0.1.5 • Public • Published

Stacks Utilities

npm version npm version npm version npm license

Getting started

npm install stacks-utils
# or
yarn add stacks-utils

Table of Contents

  • Addresses
  • Transactions
  • Hardware Wallets
  • Data Fetching
  • Units

Addresses

Validate Stacks Address

import { validateStacksAddress } from "stacks-utils";
 
const isValid = validateStacksAddress(stacksAddress);

Stacks to Bitcoin

import { stacksAddressToBtcAddress } from "stacks-utils";
 
const btcAddress = stacksAddressToBtcAddress(stacksAddress);

Bitcoin to Stacks

import { btcAddressToStacksAddress } from "stacks-utils";
 
const stacksAddress = btcAddressToStacksAddress(btcAddress);

Transactions

Decode raw Bitcoin Transaction

import { decodeRawTx } from "stacks-utils";
 
const fetchFees = false; // if true, the BTC fees will be fetched and calculated
 
async () => {
  const tx = await decodeRawTx(rawTx, fetchFees);
  console.log(tx);
};

This will return an object as such:

const tx = {
  sender, // sender STX address
  senderBitcoinAddress, // sender BTC address
  recipient, // recipient STX address
  recipientBitcoinAddress, // recipient BTC address
  opcode, // $
  operation, // TOKEN_TRANSFER
  consensusHash, // df1631913bbf485ce6a25f26bccfc8d3
  tokenType, // "STACKS"
  tokenAmount, // BigInteger
  tokenAmountReadable, // 0.000001
  memo, // Message
  fees // BTC tx fees in satoshis (if fetchFees = true)
};

Decode an array of transactions

This is mostly to be used in conjunction with fetchBtcAddressData. This will take an array of BTC transactions (with a hex key in each object) and decode the raw transaction and combine the two.

import { decodeRawTxs } from "stacks-utils";
 
const fetchFees = false; // if true, the BTC fees will be fetched and calculated
 
(async () => {
    const txs = [...];
    const transactions = await decodeRawTx(txs, fetchFees);
    console.log(transactions)
})

Get readable operation type

See: https://docs.blockstack.org/core/wire-format.html

import { getOperationType } from "stacks-utils";
 
const opcode = "$";
const operation = getOperationType(opcode); // TOKEN_TRANSFER

Data Fetching

Fetch all data associated with a Stacks Address

import { fetchStacksAddressData } from "stacks-utils";
 
const data = await fetchStacksAddressData(stacksAddress);

Fetch Stacks Address data from the Blockstack Explorer API

import { fetchStacksAddressDetails } from "stacks-utils";
 
const data = await fetchStacksAddressDetails(stacksAddress);

Fetch all data associated with a BTC Address

import { fetchBtcAddressData } from "stacks-utils";
 
const data = await fetchBtcAddressData(btcAddress);

Units

Microstacks to Stacks

import { microToStacks } from "stacks-utils";
 
const stacksAmount = microToStacks(1); // 0.000001

Stacks to Microstacks

import { stacksToMicro } from "stacks-utils";
 
const microStacksAmount = stacksToMicro(0.000001); // 1

Install

npm i stacks-utils

DownloadsWeekly Downloads

3

Version

0.1.5

License

MIT

Unpacked Size

268 kB

Total Files

9

Last publish

Collaborators

  • avatar