@nick-iotex/g3o
TypeScript icon, indicating that this package has built-in type declarations

2.0.1 • Public • Published

Install

Run npm i @nick-iotex/g3o

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

Readme

Keywords

none

Package Sidebar

Install

npm i @nick-iotex/g3o

Weekly Downloads

0

Version

2.0.1

License

MIT

Unpacked Size

59.6 kB

Total Files

20

Last publish

Collaborators

  • nick-iotex