npm package discovery and stats viewer.

Discover Tips

  • General search

    [free text search, go nuts!]

  • Package details

    pkg:[package-name]

  • User packages

    @[username]

Sponsor

Optimize Toolset

I’ve always been into building performant and accessible sites, but lately I’ve been taking it extremely seriously. So much so that I’ve been building a tool to help me optimize and monitor the sites that I build to make sure that I’m making an attempt to offer the best experience to those who visit them. If you’re into performant, accessible and SEO friendly sites, you might like it too! You can check it out at Optimize Toolset.

About

Hi, 👋, I’m Ryan Hefner  and I built this site for me, and you! The goal of this site was to provide an easy way for me to check the stats on my npm packages, both for prioritizing issues and updates, and to give me a little kick in the pants to keep up on stuff.

As I was building it, I realized that I was actually using the tool to build the tool, and figured I might as well put this out there and hopefully others will find it to be a fast and useful way to search and browse npm packages as I have.

If you’re interested in other things I’m working on, follow me on Twitter or check out the open source projects I’ve been publishing on GitHub.

I am also working on a Twitter bot for this site to tweet the most popular, newest, random packages from npm. Please follow that account now and it will start sending out packages soon–ish.

Open Software & Tools

This site wouldn’t be possible without the immense generosity and tireless efforts from the people who make contributions to the world and share their work via open source initiatives. Thank you 🙏

© 2024 – Pkg Stats / Ryan Hefner

@catalabs/bitcoin-widget

v0.0.1

Published

Catalyst Bitcoin Deposit Widget

Downloads

10

Readme

Catalabs Bitcoin Deposit Widget

The Catalabs deposit widget provides several ways to help manage a Crosscats deposit address.

Generating an address consists of two parts:

  • Generating a 3 word order slug
  • Generating a date string for the current date

These two pieces of information paired with a users VM private key allow Bitcoin deposit addresses to be generated in a recoverable way. The two pieces of information and utilized in a disclaimer indicating to the user to keep the information to recover this address. The order slug, date string, and disclaimer are then used to generate a signature that serves as the seed for the Bitcoin wallet private key.

What does this support?

  • Creating Order Slugs
  • Creating Date Strings
  • Formatting Disclaimer Text
  • Creating BIP21 Bitcoin Links
  • Scannable Bitcoin QR Code
  • Generating ECPair, Address, and Bitcoin Wallet
  • Querying Bitcoin address balance
  • Sending Bitcoin
  • Creating Bitcoin Wallets from WIF, Signatures, or Private Keys

Examples

A minimal example of how to create a Deposit Widget is provided in an Example. This example only shows how to provide a signing function to generate a Bitcoin wallet. The QR code is available stand alone or with an address displayed.

Generating a Wallet

async function signData(
  dataStruct: DataStruct,
  value: OrderAttestationValue,
): Promise<string> {
  return ethers.signTypedData(
    {
      name: "Catalabs Widget Example",
    },
    dataStruct,
    value,
  );
}

const { wallet, address } = await generateKeyPair({ signData });

The generated wallet can then be used to utilie the Bitcoin QR Component or with the Deposit Widget.

Using the Wallet

The Bitcoin Wallet has three functions:

  • Get Balance
  • Send
  • Send All

When monitoring addresses, the getBalance method may be polled to determin whene a generated address has any inputs (including unconfirmed inputs). Coins can then be moved by using send or sendAll - these functions will utilize unconfirmed inputs as well, allowing coins to immediately be sent when balance is detected.

Recovering Wallets

Any wallet can be recovered by reproducing the steps laid out above. It is important as stated in the disclaimer that users should capture their date string and order slug should they wish to recover their wallet in the case of any issue - assuming this information is not stored by the part implementing the wallet.