0.1.5 • Published 5 years ago

stacks-utils v0.1.5

Weekly downloads
9
License
MIT
Repository
-
Last release
5 years ago

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
0.1.5

5 years ago

0.1.4

5 years ago

0.1.3

5 years ago

0.1.2

5 years ago

0.1.1

5 years ago

0.1.0

5 years ago

0.0.6

5 years ago

0.0.5

5 years ago

0.0.4

5 years ago

0.0.3

5 years ago

0.0.2

5 years ago

0.0.1

5 years ago