Skip to content

Latest commit

 

History

History
117 lines (79 loc) · 5.24 KB

README.md

File metadata and controls

117 lines (79 loc) · 5.24 KB

Squarelink

Squarelink Web3 SDK

license

This is the Squarelink Web3 SDK which enables Squarelink enhancements to standard Web3 JSON RPC requests.

Check out the Squarelink Documentation for more information, quick-start guides, etc.

Installation

Node

$ npm install squarelink

CDN

<script src="https://squarelink.com/js/squarelink.min.js"></script>

Usage

First, register your application at dev.squarelink.com to obtain your CLIENT ID

import Web3 from 'web3'
import Squarelink from 'squarelink'

const sqlk = new Squarelink('<CLIENT ID>')

// Use callback or Promise
sqlk.getProvider(provider => {
  const web3 = new Web3(provider)

  // Use the web3 library as you would normally!
  web3.currentProvider.enable()
})

Configuration

const sqlk = new Squarelink(clientId [, network][, opts])

Squarelink-Object - Initializes a Squarelink Web3 Provider for you

  • clientId-String - The Client ID provided to you when you register your DApp in the Squarelink Developer Console

  • network-String|Object - Configures the RPC node you're connecting to. See a list of our available networks. Defaults to 'mainnet'.

  • opts - Object - Pass additional options to the Squarelink SDK.

Examples

// connect to the Ropsten network
new Squarelink('<CLIENT ID>', 'ropsten')
// connect to a custom private network
new Squarelink('<CLIENT ID>', {
  url: 'https://localhost:8545',
  chainId: 420
})

Options (opts)

  • scope - Array - Request additional scopes to use custom Squarelink functions.
  • useSync - Boolean - See getProviderSync below for usage (default = false).

Available Scopes:

  • user - Equivalent to all scopes below
  • user:name - Access to read user's name
  • user:email - Access to user's email address
  • user:security - Access to read user's security settings

Detecting Squarelink

web3.currentProvider.isSquarelink

Additional Functions

  • Squarelink.getName() - requires the user or user:name scope

  • Squarelink.getEmail() - requires the user or user:email scope

  • Squarelink.getSecuritySettings() - requires the user or user:security scope

Initializing Squarelink Synchronously

The getProvider function fetches a list of our supported networks and their RPC endpoints from our API. This allows us to remotely switch RPC providers to ensure 100% uptime and remove faulty/compromised endpoints.

If you are unable to support callbacks/promises, you can use getProviderSync which uses hard-coded RPC endpoints. NOTE: we cannot guarantee 100% uptime with this method.

const sqlk = new Squarelink('<CLIENT ID>', 'mainnet', { useSync: true })
const web3 = new Web(sqlk.getProviderSync())

Documentation

https://docs.squarelink.com

License

MIT