Socket
Socket
Sign inDemoInstall

stacks-utils

Package Overview
Dependencies
177
Maintainers
1
Versions
12
Alerts
File Explorer

Advanced tools

Install Socket

Detect and block malicious and high-risk dependencies

Install

    stacks-utils

Utilities for the Stacks blockchain.


Version published
Weekly downloads
66
increased by32%
Maintainers
1
Install size
63.0 MB
Created
Weekly downloads
 

Readme

Source

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

Keywords

FAQs

Last updated on 21 Oct 2019

Did you know?

Socket for GitHub automatically highlights issues in each pull request and monitors the health of all your open source dependencies. Discover the contents of your packages and block harmful activity before you install or update your dependencies.

Install

Related posts

SocketSocket SOC 2 Logo

Product

  • Package Alerts
  • Integrations
  • Docs
  • Pricing
  • FAQ
  • Roadmap

Stay in touch

Get open source security insights delivered straight into your inbox.


  • Terms
  • Privacy
  • Security

Made with ⚡️ by Socket Inc