Skip to content

Commit 5efd82c

Browse files
committedMay 6, 2020
feat: Network config for daf-resolver
1 parent 77b0069 commit 5efd82c

File tree

3 files changed

+37
-13
lines changed

3 files changed

+37
-13
lines changed
 

‎packages/daf-resolver/src/__tests__/default.test.ts

-6
This file was deleted.
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,14 @@
1+
import { DafResolver } from '../resolver'
2+
3+
describe('daf-resolver', () => {
4+
it('should throw error when misconfigured', () => {
5+
expect(() => {
6+
new DafResolver({})
7+
}).toThrow()
8+
})
9+
10+
it('should have resolve method', () => {
11+
const resolver = new DafResolver({ infuraProjectId: 'xxx' })
12+
expect(resolver).toHaveProperty('resolve')
13+
})
14+
})

‎packages/daf-resolver/src/resolver.ts

+23-7
Original file line numberDiff line numberDiff line change
@@ -6,21 +6,37 @@ import Debug from 'debug'
66

77
const debug = Debug('daf:resolver')
88

9+
interface NetworkConfig {
10+
name: string
11+
rpcUrl: string
12+
}
13+
914
interface Options {
10-
infuraProjectId: string
15+
infuraProjectId?: string
16+
networks?: NetworkConfig[]
1117
}
1218

1319
export class DafResolver {
1420
private didResolver: Resolver
1521

1622
constructor(options: Options) {
23+
let networks: NetworkConfig[]
24+
if (!options.networks && options.infuraProjectId) {
25+
networks = [
26+
{ name: 'mainnet', rpcUrl: 'https://mainnet.infura.io/v3/' + options.infuraProjectId },
27+
{ name: 'rinkeby', rpcUrl: 'https://rinkeby.infura.io/v3/' + options.infuraProjectId },
28+
{ name: 'ropsten', rpcUrl: 'https://ropsten.infura.io/v3/' + options.infuraProjectId },
29+
{ name: 'kovan', rpcUrl: 'https://kovan.infura.io/v3/' + options.infuraProjectId },
30+
{ name: 'goerli', rpcUrl: 'https://goerli.infura.io/v3/' + options.infuraProjectId },
31+
]
32+
} else if (!options.infuraProjectId && options.networks) {
33+
networks = options.networks
34+
} else {
35+
throw Error('[daf-resolver] infuraProjectId or networks config required')
36+
}
37+
debug('Networks config', networks)
1738
this.didResolver = new Resolver({
18-
...ethrDidResolver({
19-
networks: [
20-
{ name: 'mainnet', rpcUrl: 'https://mainnet.infura.io/v3/' + options.infuraProjectId },
21-
{ name: 'rinkeby', rpcUrl: 'https://rinkeby.infura.io/v3/' + options.infuraProjectId },
22-
],
23-
}),
39+
...ethrDidResolver({ networks }),
2440
...webDidResolver(),
2541
nacl: naclDidResolver,
2642
})

0 commit comments

Comments
 (0)
Please sign in to comment.