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

bitcoin-transaction-wangyi

v1.0.0

Published

Send BitCoins from one wallet to another. This is designed to be as simple to use as possible.

Downloads

4

Readme

bitcoin-transaction

The simpliest way to send bitcoins from one wallet to another using javascript. This library will hook into popular third party services such as blockchain.info and blockexplorer.com to do all the heavy lifting in sending a bitcoin transaction. Other libraries require you to parse 3rd party apis or run external software to send a transaction. This library is meant to be as simple as possible while still allowing for customization.

Designed to run on both NodeJS and in the browser.

Installation

npm install --save bitcoin-transaction-wangyi

or for the browser

npm install -g browserify uglify-js
npm install bitcoin-transaction-wangyi
browserify -r bitcoin-transaction-wangyi -s bitcoinTransaction | uglifyjs > bitcoin-transaction-wangyi.min.js

Usage

var bitcoinTransaction = require('bitcoin-transaction-wangyi');

//Send all my money from wallet1 to wallet2 on the bitcoin testnet
var from = "mm3gdVh8n6YtcNyaTKYkveB6yTME7aDWNJ";
var to = "mgPUfqJk4X6gE4P5Do5RfpkTFsYmsSjCya";
var privKeyWIF = "cNZi8iySqBToXMpcsQaHKD5uv7HExBQJBSi4dTg3ZPaEzeNAzvbj";	//Private key in WIF form (Can generate this from bitgo-utxo-lib)

bitcoinTransaction.getBalance(from, { network: "testnet" }).then((balanceInBTC) => {
	return bitcoinTransaction.sendTransaction({
		from: from,
		to: to,
		privKeyWIF: privKeyWIF,
		btc: balanceInBTC,
		network: "testnet"
	});
});

API

bitcoinTransaction.providers

Advanced

Contains the services that provide low level functionality on the blockchain. Sensible defaults are set out of the box, but feel free to adjust these as you see fit. There are 4 provider types:

  • balance - Retrieves the balance of a wallet.
  • fees - Gets a list of current fees based on the BitCoin network going rate.
  • utxo - Pull a list of unspent transaction outputs.
  • pushtx - Push a raw transaction onto the blockchain.

Feel free to change the defaults by setting the default property on the provider. For example:

//Set the default main network balance provider to blockchain.info instead of blockexplorer.com
bitcoinTransaction.providers.balance.mainnet.default = bitcoinTransaction.providers.balance.mainnet.blockchain;

bitcoinTransaction.getBalance(address, options)

Returns a promise that yields the balance of the given address.

Option | Default | Description --- | --- | --- network | "mainnet" | Set the BitCoin network. Either "mainnet" or "testnet". balanceProvider | providers.balance[NETWORK].default | Set the service provider to fetch the balance.

bitcoinTransaction.sendTransaction(options)

Returns a promise that pushes a live transaction on the BitCoin blockchain.

Option | Default | Description --- | --- | --- from (Required) | N/A | The wallet where you are getting the funds from. to (Required) | N/A | The wallet where you are sending the funds to. privKeyWIF (Required) | N/A | The private key for the from wallet. btc (Required) | N/A | The amount to send in BitCoin (BTC). network | "mainnet" | Set the BitCoin network. Either "mainnet" or "testnet". fee | "fastest" | Set the fee for the transaction. Can be either one of "fastest", "halfHour" or "hour" in which case the actual fee numbers are fetched from the fees provider. Or it can be just a plain number in which case that will be used as the Fee per Byte value in Satoshis. It is recommended to use one of the string aliases unless you know what you are doing. feesProvider | providers.fees[NETWORK].default | Set the service provider to fetch the fees. utxoProvider | providers.utxo[NETWORK].default | Set the service provider to fetch the utxos. pushtxProvider | providers.pushtx[NETWORK].default | Set the service provider to push the transaction raw hex code. dryrun | false | This will not push the transaction, but instead return it as a hex string. Useful for debugging. minConfirmations | 6 | The minimum number of confirmations needed for UTXOs