forked from decentralized-identity/element
-
Notifications
You must be signed in to change notification settings - Fork 0
/
sidetree.js
42 lines (35 loc) · 963 Bytes
/
sidetree.js
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
import element from '@transmute/element-lib';
import config from '../config';
const storage = element.storage.ipfs.configure({
multiaddr: config.ELEMENT_IPFS_MULTIADDR,
});
const db = new element.adapters.database.ElementRXDBAdapter({
name: 'element-rxdb.element-app',
adapter: 'browser',
});
const storageManager = new element.adapters.storage.StorageManager(db, storage);
let blockchain;
if (window.web3) {
blockchain = element.blockchain.ethereum.configure({
// META MASK
anchorContractAddress: config.ELEMENT_CONTRACT_ADDRESS,
});
}
const parameters = {
maxOperationsPerBatch: 10 * 1000,
batchingIntervalInSeconds: 10,
didMethodName: config.DID_METHOD_NAME,
};
export const initSidetree = async () => {
if (window.web3) {
const sidetree = new element.Sidetree({
blockchain,
storage: storageManager,
db,
parameters,
});
await blockchain.resolving;
return sidetree;
}
return null;
};