Skip to content

Commit

Permalink
fix(daf-resolver): Fixed daf-resolver configuration (#298)
Browse files Browse the repository at this point in the history
* fix: Daf-resolver requires Resolver object
fixes #205 
* chore: Remove daf-resolver-universal package
* chore(test): Add placeholder tests to resolver

BREAKING CHANGE: The configuration for daf-resolver has changed to be less opinionated. It requires a `did-resolver#Resolver` that can be configured with whichever DID methods your agent needs.

Co-authored-by: Mircea Nistor <mirceanis@gmail.com>
  • Loading branch information
simonas-notcat and mirceanis committed Dec 14, 2020
1 parent 73ab0e6 commit dfcf32a
Show file tree
Hide file tree
Showing 25 changed files with 142 additions and 1,102 deletions.
18 changes: 17 additions & 1 deletion __tests__/localAgent.test.ts
Expand Up @@ -32,6 +32,9 @@ import {
DataStore,
DataStoreORM,
} from '../packages/daf-typeorm/src'
import { Resolver } from 'did-resolver'
import { getResolver as ethrDidResolver } from 'ethr-did-resolver'
import { getResolver as webDidResolver } from 'web-did-resolver'
import fs from 'fs'

jest.setTimeout(30000)
Expand Down Expand Up @@ -118,7 +121,20 @@ const setup = async (options?: IAgentOptions): Promise<boolean> => {
}),
},
}),
new DafResolver({ infuraProjectId }),
new DafResolver({
resolver: new Resolver({
ethr: ethrDidResolver({
networks: [
{ name: 'mainnet', rpcUrl: 'https://mainnet.infura.io/v3/' + infuraProjectId },
{ name: 'rinkeby', rpcUrl: 'https://rinkeby.infura.io/v3/' + infuraProjectId },
{ name: 'ropsten', rpcUrl: 'https://ropsten.infura.io/v3/' + infuraProjectId },
{ name: 'kovan', rpcUrl: 'https://kovan.infura.io/v3/' + infuraProjectId },
{ name: 'goerli', rpcUrl: 'https://goerli.infura.io/v3/' + infuraProjectId },
]
}).ethr,
web: webDidResolver().web
})
}),
new DataStore(dbConnection),
new DataStoreORM(dbConnection),
new MessageHandler({
Expand Down
20 changes: 18 additions & 2 deletions __tests__/restAgent.test.ts
Expand Up @@ -38,6 +38,9 @@ import { AgentRestClient } from '../packages/daf-rest/src'
import express from 'express'
import { Server } from 'http'
import { AgentRouter } from '../packages/daf-express/src'
import { Resolver } from 'did-resolver'
import { getResolver as ethrDidResolver } from 'ethr-did-resolver'
import { getResolver as webDidResolver } from 'web-did-resolver'
import fs from 'fs'

jest.setTimeout(30000)
Expand Down Expand Up @@ -125,7 +128,20 @@ const setup = async (options?: IAgentOptions): Promise<boolean> => {
}),
},
}),
new DafResolver({ infuraProjectId }),
new DafResolver({
resolver: new Resolver({
ethr: ethrDidResolver({
networks: [
{ name: 'mainnet', rpcUrl: 'https://mainnet.infura.io/v3/' + infuraProjectId },
{ name: 'rinkeby', rpcUrl: 'https://rinkeby.infura.io/v3/' + infuraProjectId },
{ name: 'ropsten', rpcUrl: 'https://ropsten.infura.io/v3/' + infuraProjectId },
{ name: 'kovan', rpcUrl: 'https://kovan.infura.io/v3/' + infuraProjectId },
{ name: 'goerli', rpcUrl: 'https://goerli.infura.io/v3/' + infuraProjectId },
]
}).ethr,
web: webDidResolver().web
})
}),
new DataStore(dbConnection),
new DataStoreORM(dbConnection),
new MessageHandler({
Expand All @@ -151,7 +167,7 @@ const setup = async (options?: IAgentOptions): Promise<boolean> => {
const app = express()
app.use(basePath, agentRouter)
restServer = app.listen(port, () => {
resolve()
resolve(true)
})
})
}
Expand Down
58 changes: 41 additions & 17 deletions packages/daf-cli/default/default.yml
Expand Up @@ -25,6 +25,7 @@ server:
constants:
secretKey: 29739248cad1bd1a0fc4d9b75cd4d2990de535baf5caadfdf8d8f86664aa830c
databaseFile: ./database.sqlite

dbConnection:
$require: typeorm?t=function#createConnection
$args:
Expand All @@ -35,6 +36,7 @@ dbConnection:
logging: false
entities:
$require: daf-typeorm?t=object#Entities

messageHandler:
$require: daf-message-handler#MessageHandler
$args:
Expand All @@ -43,6 +45,43 @@ messageHandler:
- $require: daf-did-jwt#JwtMessageHandler
- $require: daf-w3c#W3cMessageHandler
- $require: daf-selective-disclosure#SdrMessageHandler

ethr-did-resolver:
$require: ethr-did-resolver?t=function&p=/ethr#getResolver
$args:
- networks:
- name: mainnet
rpcUrl: https://mainnet.infura.io/v3/5ffc47f65c4042ce847ef66a3fa70d4c
- name: rinkeby
rpcUrl: https://rinkeby.infura.io/v3/5ffc47f65c4042ce847ef66a3fa70d4c
- name: ropsten
rpcUrl: https://ropsten.infura.io/v3/5ffc47f65c4042ce847ef66a3fa70d4c
- name: kovan
rpcUrl: https://kovan.infura.io/v3/5ffc47f65c4042ce847ef66a3fa70d4c
- name: goerli
rpcUrl: https://goerli.infura.io/v3/5ffc47f65c4042ce847ef66a3fa70d4c
- name: private
rpcUrl: http://localhost:8545/
registry: '0x05cc574b19a3c11308f761b3d7263bd8608bc532'

web-did-resolver:
$require: web-did-resolver?t=function&p=/web#getResolver

universal-resolver:
$require: daf-resolver#UniversalResolver
$args:
- url: https://dev.uniresolver.io/1.0/identifiers/

resolver:
$require: did-resolver#Resolver
$args:
- ethr:
$ref: /ethr-did-resolver
web:
$ref: /web-did-resolver
io:
$ref: /universal-resolver

agent:
$require: daf-core#Agent
$args:
Expand Down Expand Up @@ -120,23 +159,8 @@ agent:
- defaultKms: local
- $require: daf-resolver#DafResolver
$args:
- networks:
- name: mainnet
rpcUrl: https://mainnet.infura.io/v3/5ffc47f65c4042ce847ef66a3fa70d4c
- name: rinkeby
rpcUrl: https://rinkeby.infura.io/v3/5ffc47f65c4042ce847ef66a3fa70d4c
- name: ropsten
rpcUrl: https://ropsten.infura.io/v3/5ffc47f65c4042ce847ef66a3fa70d4c
- name: kovan
rpcUrl: https://kovan.infura.io/v3/5ffc47f65c4042ce847ef66a3fa70d4c
- name: goerli
rpcUrl: https://goerli.infura.io/v3/5ffc47f65c4042ce847ef66a3fa70d4c
- name: private
rpcUrl: http://localhost:8545/
registry: '0x05cc574b19a3c11308f761b3d7263bd8608bc532'
# - $require: daf-resolver-universal#DafUniversalResolver
# $args:
# - url: https://dev.uniresolver.io/1.0/identifiers/
- resolver:
$ref: /resolver
- $require: daf-typeorm#DataStore
$args:
- $ref: /dbConnection
Expand Down
6 changes: 4 additions & 2 deletions packages/daf-cli/package.json
Expand Up @@ -10,7 +10,7 @@
"scripts": {
"build": "tsc",
"watch": "tsc -b --watch",
"update-daf-beta": "yarn add daf-core@beta daf-resolver@beta daf-did-jwt@beta daf-w3c@beta daf-ethr-did@beta daf-web-did@beta daf-did-comm@beta daf-libsodium@beta daf-selective-disclosure@beta daf-typeorm@beta daf-key-manager@beta daf-message-handler@beta daf-identity-manager@beta daf-resolver-universal@beta daf-url@beta"
"update-daf-beta": "yarn add daf-core@beta daf-resolver@beta daf-did-jwt@beta daf-w3c@beta daf-ethr-did@beta daf-web-did@beta daf-did-comm@beta daf-libsodium@beta daf-selective-disclosure@beta daf-typeorm@beta daf-key-manager@beta daf-message-handler@beta daf-identity-manager@beta daf-url@beta"
},
"dependencies": {
"@microsoft/api-extractor": "7.9.22",
Expand All @@ -32,7 +32,6 @@
"daf-libsodium": "^7.0.0-beta.56",
"daf-message-handler": "^7.0.0-beta.56",
"daf-resolver": "^7.0.0-beta.56",
"daf-resolver-universal": "^7.0.0-beta.56",
"daf-rest": "^7.0.0-beta.56",
"daf-selective-disclosure": "^7.0.0-beta.56",
"daf-typeorm": "^7.0.0-beta.56",
Expand All @@ -41,7 +40,9 @@
"daf-web-did": "^7.0.0-beta.56",
"date-fns": "^2.8.1",
"debug": "^4.1.1",
"did-resolver": "^2.1.2",
"dotenv": "^8.2.0",
"ethr-did-resolver": "^3.0.2",
"express": "^4.17.1",
"express-handlebars": "^5.2.0",
"fuzzy": "^0.1.3",
Expand All @@ -62,6 +63,7 @@
"ts-json-schema-generator": "^0.80.0",
"typeorm": "0.2.24",
"url-parse": "^1.4.7",
"web-did-resolver": "^1.3.5",
"ws": "^7.2.0",
"yaml": "^1.10.0"
},
Expand Down
4 changes: 4 additions & 0 deletions packages/daf-cli/src/lib/objectCreator.ts
Expand Up @@ -43,6 +43,7 @@ export function createObjects(config: object, pointers: Record<string, string>):
let module = parsed.pathname
const member = parsed.hash.length > 1 ? parsed.hash.slice(1) : 'default'
const type = parsed.query['t'] || 'class'
const pointer = parsed.query['p']
const args = objectConfig['$args']
// console.log({module, member, type, query: parsed.query})

Expand All @@ -59,6 +60,9 @@ export function createObjects(config: object, pointers: Record<string, string>):
} else if (type === 'object') {
object = required
}
if (pointer) {
return get(object, pointer)
}
return object
}

Expand Down
1 change: 0 additions & 1 deletion packages/daf-cli/tsconfig.json
Expand Up @@ -15,7 +15,6 @@
{ "path": "../daf-key-manager" },
{ "path": "../daf-libsodium" },
{ "path": "../daf-message-handler" },
{ "path": "../daf-resolver-universal" },
{ "path": "../daf-resolver" },
{ "path": "../daf-rest" },
{ "path": "../daf-express" },
Expand Down

0 comments on commit dfcf32a

Please sign in to comment.