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

coinbase-sdk

v1.3.2

Published

Library for Coinbase API

Downloads

53

Readme

Coinbase SDK

Coinbase Sign-in SDK (https://docs.cloud.coinbase.com/sign-in-with-coinbase/docs/welcome) without external dependencies. Based purely on fetch API, this implementation ensures that the SDK remains lightweight and self-contained, without relying on any third-party libraries or modules for handling HTTP requests and other functionalities.

Features

  • [x] Typescript support
  • [x] No external dependencies
  • [x] Coinbase API v2 support (https://developers.coinbase.com/api/v2)
  • [x] Notification verifier for webhooks/notifications
  • [x] High test coverage
  • [x] Easy of use

Supported authentication methods

  • [x] API key
  • [ ] OAuth2

Requirements

  • NodeJS >= 18.0.0
  • API keys - https://www.coinbase.com/settings/api with permissions you need to use (e.g. wallet:accounts:read). Depends on what methods you want to use.

Installation

npm i coinbase-sdk

Usage of Client

A new instance of CoinbaseClient is created using the ApiKeyRequestMaker constructor. The ApiKeyRequestMaker class is used to handle API key-based authentication with Coinbase. It requires two arguments: the apikey and apisecret. These values should be replaced with your actual Coinbase API key and API secret.

A new strategy called OAuth2RequestMaker is in TBA state. It will be used to handle OAuth2 authentication with Coinbase.

It may throw exceptions like

  • PayloadPreconditionFailedException - when payload is not valid, e.g. missing required fields or some fields are required by other fields
  • RequestTimedoutException - when request timed out, 30 seconds is a value set by coinbase
  • InvalidResponseException - when response is not valid, e.g. status code is not 200 or response is not in JSON format. This exception also contains json response body (jsonResponse).
import {CoinbaseClient, ApiKeyRequestMaker} from 'coinbase-sdk';

const coinbaseClient = new CoinbaseClient(
    new ApiKeyRequestMaker(
        'apikey', 'apisecret'
    )
);

const response = await coinbaseClient.getAccounts({
    limit: 10,
    order: 'asc'
})

Usage of notification Verifier

The provided code demonstrates the usage of the NotificationVerifier class from the coinbase-sdk library. The NotificationVerifier is a utility class that allows you to verify the authenticity and integrity of incoming notifications from Coinbase.

Return value:

If the verification is successful, the verify method will complete normally without throwing any exceptions or errors.

If the verification fails, the verify method will throw an InvalidSignatureException. This exception indicates that the signature of the incoming notification is invalid, suggesting that the notification may not be from Coinbase or may have been tampered with.

import { NotificationVerifier } from 'coinbase-sdk';

const notificationVerifier = new NotificationVerifier();

// Will throw InvalidSignatureException if signature is invalid
await notificationVerifier.verify(jsonBody, cbSignatureHeader)

Supported client methods

  • [x] accounts
  • [x] addresses
  • [x] buys
  • [ ] deposits - In progress
  • [x] payment_methods
  • [x] prices
  • [ ] sells - In progress
  • [x] transactions
  • [ ] users - In progress
  • [ ] withdrawals - In progress
  • [x] exchange_rates
  • [x] time
  • [x] currencies
  • [x] prices

How to run tests

npm run test

License

The MIT License (MIT). Please see License File for more information.

Contact

[email protected]