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

blocktrail-sdk

v3.7.22

Published

BlockTrail's Developer Friendly API binding for NodeJS

Downloads

201

Readme

BlockTrail NodeJS SDK

This is the BlockTrail NodeJS SDK. This SDK contains methods for easily interacting with the BlockTrail API. Below are examples to get you started. For additional examples, please see our official documentation at https://www.blocktrail.com/api/docs/lang/nodejs

Latest Stable Version Build Status Sauce Test Status

Sauce Test Status

The Blocktrail SDK is tested against;

  • NodeJS:
    • 0.11
    • 0.12
    • 5.11
    • 6.3.0
    • 7.1.0
  • Browser:
    • Google Chrome 48 / latest
    • Firefox 49 / latest
    • Safari 10.0 / latest
    • Edge 14.14393
    • IE 11.103
    • Android 4.4
    • Android 5.0
    • iPhone OS X 10.10

Upgrading from v3.x to v3.4.0

We've seperated out the backup PDF generator because it contained a lot of dependencies while barely anyone uses it.
If you do want to use it, see the blocktrail-sdk-backup-generator package.

Upgrading from v2.x to v3.0.0

IMPORTANT v3.0.0 introduces a new DEFAULT wallet encryption, please make sure you upgrade the SDK everywhere you're using it!!

Upgrading from v1.x to v2.0.0

IMPORTANT v2.0.0 has a few BC breaks, please check docs/CHANGELOG.md!!

IMPORTANT! FLOATS ARE EVIL!!

As is best practice with financial data, The API returns all values as an integer, the Bitcoin value in Satoshi's. In Javascript even more than in other languages it's really easy to make mistakes when converting from float to integer etc!

The BlockTrail SDK has some easy to use functions to do this for you, we recommend using these and we also strongly recommend doing all Bitcoin calculation and storing of data in integers and only convert to/from Bitcoin float values for displaying it to the user.

var blocktrail = require('blocktrail-sdk');

console.log("123456789 Satoshi to BTC: ", blocktrail.toBTC(123456789));
console.log("1.23456789 BTC to Satoshi: ", blocktrail.toSatoshi(1.23456789));

A bit more about this can be found in our documentation.

Installation

You can install the package through NPM (https://www.npmjs.org/package/blocktrail-sdk).

npm install blocktrail-sdk

Usage

Please visit our official documentation at https://www.blocktrail.com/api/docs/lang/nodejs for the usage.

Promises vs Callbacks

Personally we prefer good old callbacks over promises,
but to make everyone happy the SDK functions accept a callback argument and return a (Q)promise object, so you can use whatever you prefer!

Support and Feedback

Be sure to visit the BlockTrail API official documentation website for additional information about our API.

If you find a bug, please submit the issue in Github directly. BlockTrail-NodeJS-SDK Issues

As always, if you need additional assistance, drop us a note at [email protected].

Unit Tests

Unit Tests are created with Mocha and can be ran with npm test (or mocha)

We also run jshint and jscs, these are automatically ran by travis-ci for every commit and pull request.

jshint main.js lib/ test/
jscs main.js lib/ test/

Browserify

The BlockTrail NodeJS SDK can be browserified to use it in the browser, which we use ourselves for wallet actions from our webapp.
If you want to test or develop on the SDK in the browser you can use grunt build (and grunt watch) to build the browserify version.

You need to pull the git submodules before you can build the browserify version:
git submodule update --init --recursive

Files in ./build are:

  • blocktrail-sdk.js (and blocktrail-sdk.min.js) the blocktrailSDK browserified
  • jsPDF.js (and jsPDF.min.js) dependancy for generating the backup PDF
  • blocktrail-sdk-full.js (and blocktrail-sdk-full.min.js) the blocktrailSDK browserified + jsPDF bundled

If you use these browserified versions of our SDK it will be accessible as window.blocktrailSDK or plain blocktrailSDK.

Known Supported and Tested Browsers:

  • Android 4.3+ (Use Crosswalk for lower versions if neccesary)
  • iOS6+
  • IE9+

For the following any modern version will work just fine:

  • Chrome
  • FireFox
  • Safari

Webworker

To defer encryption/decryption/keyderivation to webworkers in the browser it's neccesary to make create the following function in the global scope:

function onLoadWorkerLoadAsmCrypto(worker) {
    worker.postMessage({
        method: 'importScripts',
        script: document.location.protocol + '//' + document.location.host + '/build/asmcrypto.min.js'
    });
}

This will get called as the onLoad of the webworker and will trigger importing the asmcrypto.min.js.
We had to seperate asmcrypto.js from the main browserify bundle because uglify was killing the ASM.js.

Uglify

If you're planning to uglify/minify the javascript yourself, make sure to exclude the following variable names from being mangled:
['Buffer', 'BitInteger', 'Point', 'Script', 'ECPubKey', 'ECKey']

License

The BlockTrail NodeJS SDK is released under the terms of the MIT license. See LICENCE.md for more information or see http://opensource.org/licenses/MIT.