/grano-did-resolver

Primary LanguageJavaScriptApache License 2.0Apache-2.0

Grano DID Resolver

Grano DID Resolver is a program that returns values according to the DID specification defined by the W3C. It depends on Sequelize and all values refer to the off-chain database.

How to Use

  1. Create Mariadb and export data from grano-did-contract using grano-did-exporter

  2. Set DB configuration in .env

DATABASE=grano
USERNAME=root
PASSWORD=password
DIALECT=mariadb
HOST=localhost
PORT=3306
  1. Call Resolver
const { Resolver } = require('did-resolver')
const { getResolver, DatabaseClient } = require('@eg-easy/grano-did-resolver')

const main = async () => {
  const dbClient = new DatabaseClient()

  const granoDidResolver = getResolver(dbClient)

  const didResolver = new Resolver(granoDidResolver)

  const didDocument = await didResolver.resolve('did:grn:grano14fsulwpdj9wmjchsjzuze0k37qvw7n7am3reev', {})

  console.dir(didDocument, { depth: 3 })
}

main()

Sample Response

{
  didResolutionMetadata: { contentType: 'application/did+ld+json' },
  didDocumentMetadata: {},
  didDocument: {
    '@context': [
      'https://www.w3.org/ns/did/v1',
      'https://w3id.org/security/suites/secp256k1recovery-2020/v2'
    ],
    id: 'did:grn:grano14fsulwpdj9wmjchsjzuze0k37qvw7n7am3reev',
    verificationMethod: [
      {
        id: 'did:grn:grano1m2pz9nj72lj2yxnpcmxqwfwk50v35gq7wd399m#controller',
        type: 'EcdsaSecp256k1RecoveryMethod2020',
        controller: 'did:grn:grano1m2pz9nj72lj2yxnpcmxqwfwk50v35gq7wd399m'
      }
    ],
    authentication: [
      'did:grn:grano1m2pz9nj72lj2yxnpcmxqwfwk50v35gq7wd399m#controller'
    ],
    assertionMethod: [
      'did:grn:grano1m2pz9nj72lj2yxnpcmxqwfwk50v35gq7wd399m#controller'
    ],
    controller: 'did:grn:grano1m2pz9nj72lj2yxnpcmxqwfwk50v35gq7wd399m',
    service: [ 'twitter' ]
  }
}

References