🚀 Socket Launch Week Day 5:Introducing Repository Access Permissions and Custom Roles.Learn more
Sign In

@w3bstream/geolocation-light

Package Overview
Dependencies
Maintainers
4
Versions
1
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

@w3bstream/geolocation-light

verify siwe msg and generate proof of location

latest
npmnpm
Version
0.1.0
Version published
Weekly downloads
8
14.29%
Maintainers
4
Weekly downloads
 
Created
Source

Install

Run npm i @w3bstream/geolocation-light

HIW

Instantiate a new instance of a geolocation, like this: const geolocation = new GeolocationVerifier(). This constructor doesn't take any parameters for testnet.

In order to call the mainnet API you'll need to specify it like this: new GeolocationVerifier({isMainnet: true}).

In order to generate a Siwe message, you'll have to first create a location, like this:

geolocation.location = { 
    latitude: 47.658872,    // range [-90, 90]
    longitude: -27.4444,    // range [-180, 180]
    distance: 1000,         // range [0, infinity), meters
    from: 1676305034021,    // timestamp, unix milliseconds
    to: 1676305034488       // timestamp, unix milliseconds
    }

Or for scaled coordinates (e.g. latitude: 47658872, etc...) you can set a scaledLocationArea like this:

// sets location area
geolocation.scaledLocation = {
    scaled_latitude: -45500000,
    scaled_longitude: 123000000,
    distance: 100,
    from: 1676305034,   // timestamp, unix seconds
    to: 1676305035      // timestamp, unix seconds
    }

These values will be validated under the hood, and will be used in the generateSiweMessage() method:

// generates Siwe message and returns it as a string
const msg = geolocation.generateSiweMessage({
    domain: string,
    uri: string,
    address: string,
    })

You can now use any library of choice to sign this message and retrieve its signature.

You can now set the signature you just retrieved like this:

// sets the signature
geolocation.signature = signature

You're now ready to call the verifyLocation() method which will not need any params.

const verifiedLocation = await geolocation.verifyLocation();

Get Started

For a quick example of how this package works, check out this step-by-step get-started on the iotex developers portal

FAQs

Package last updated on 16 Feb 2023

Did you know?

Socket

Socket for GitHub automatically highlights issues in each pull request and monitors the health of all your open source dependencies. Discover the contents of your packages and block harmful activity before you install or update your dependencies.

Install

Related posts