npm install stacks-utils
# or
yarn add stacks-utils
- Addresses
- Transactions
- Hardware Wallets
- Data Fetching
- Units
import { validateStacksAddress } from "stacks-utils";
const isValid = validateStacksAddress(stacksAddress);
import { stacksAddressToBtcAddress } from "stacks-utils";
const btcAddress = stacksAddressToBtcAddress(stacksAddress);
import { btcAddressToStacksAddress } from "stacks-utils";
const stacksAddress = btcAddressToStacksAddress(btcAddress);
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)
};
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)
})
See: https://docs.blockstack.org/core/wire-format.html
import { getOperationType } from "stacks-utils";
const opcode = "$";
const operation = getOperationType(opcode); // TOKEN_TRANSFER
import { fetchStacksAddressData } from "stacks-utils";
const data = await fetchStacksAddressData(stacksAddress);
import { fetchStacksAddressDetails } from "stacks-utils";
const data = await fetchStacksAddressDetails(stacksAddress);
import { fetchBtcAddressData } from "stacks-utils";
const data = await fetchBtcAddressData(btcAddress);
import { microToStacks } from "stacks-utils";
const stacksAmount = microToStacks(1); // 0.000001
import { stacksToMicro } from "stacks-utils";
const microStacksAmount = stacksToMicro(0.000001); // 1