This repository has been archived by the owner on Jan 18, 2022. It is now read-only.
/
addRemoveExample.js
83 lines (73 loc) · 2.67 KB
/
addRemoveExample.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
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
const Web3 = require("web3");
const EEAClient = require("../../src");
const Utils = require("../helpers.js");
const { chainID, orion, besu } = require("../keys.js");
const node1 = new EEAClient(new Web3(besu.node1.url), chainID);
const node2 = new EEAClient(new Web3(besu.node2.url), chainID);
const node3 = new EEAClient(new Web3(besu.node3.url), chainID);
module.exports = async () => {
const onChainPrivacyGroupCreationResult = await node1.privx.createPrivacyGroup(
{
participants: [orion.node1.publicKey, orion.node2.publicKey],
enclaveKey: orion.node1.publicKey,
privateFrom: orion.node1.publicKey,
privateKey: besu.node1.privateKey
}
);
console.log("Created new on-chain privacy group:");
console.log(onChainPrivacyGroupCreationResult);
const findResult = await node2.privx.findOnChainPrivacyGroup({
addresses: [orion.node1.publicKey, orion.node2.publicKey]
});
console.log("Found privacy group results:");
Utils.logMatchingGroup(
findResult,
onChainPrivacyGroupCreationResult.privacyGroupId
);
const addResult = await node1.privx.addToPrivacyGroup({
participants: [orion.node3.publicKey],
enclaveKey: orion.node1.publicKey,
privateFrom: orion.node1.publicKey,
privacyGroupId: onChainPrivacyGroupCreationResult.privacyGroupId,
privateKey: besu.node1.privateKey
});
console.log("Added new node to privacy group:");
console.log(addResult);
const receiptFromNode3 = await node3.priv.getTransactionReceipt(
addResult.commitmentHash,
orion.node3.publicKey
);
console.log("Got transaction receipt from added node:");
console.log(receiptFromNode3);
const findResultWithAddedNode = await node2.privx.findOnChainPrivacyGroup({
addresses: [
orion.node1.publicKey,
orion.node2.publicKey,
orion.node3.publicKey
]
});
console.log("Found privacy groups with added node:");
Utils.logMatchingGroup(
findResultWithAddedNode,
onChainPrivacyGroupCreationResult.privacyGroupId
);
const removeResult = await node1.privx.removeFromPrivacyGroup({
participant: orion.node3.publicKey,
enclaveKey: orion.node1.publicKey,
privateFrom: orion.node1.publicKey,
privacyGroupId: onChainPrivacyGroupCreationResult.privacyGroupId,
privateKey: besu.node1.privateKey
});
console.log("Removed third participant from privacy group:");
console.log(removeResult);
const findResultRemovedNode = await node2.privx.findOnChainPrivacyGroup({
addresses: [orion.node1.publicKey, orion.node2.publicKey]
});
Utils.logMatchingGroup(
findResultRemovedNode,
onChainPrivacyGroupCreationResult.privacyGroupId
);
};
if (require.main === module) {
module.exports();
}