Giter Site home page Giter Site logo

hemasama / bitcoin-transaction Goto Github PK

View Code? Open in Web Editor NEW

This project forked from hexonaut/bitcoin-transaction

0.0 1.0 0.0 14 KB

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

License: MIT License

JavaScript 100.00%

bitcoin-transaction's Introduction

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

or for the browser

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

Usage

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

//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 bitcoinlib-js)

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

bitcoin-transaction's People

Contributors

hashtd avatar hexonaut avatar kidsil avatar

Watchers

 avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.