Skip to content

Squarelink-Inc/Squarelink-Web3

Repository files navigation

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