opportunity-service 0.0.605 → 0.0.609
Sign up to get free protection for your applications and to get access to all the features.
- package/dist/OpportunityService.js +7 -2
- package/dist/OpportunityService.js.map +1 -1
- package/dist/api/index.js +5 -1
- package/dist/api/index.js.map +1 -1
- package/dist/blockchain/addresses.json +4 -4
- package/dist/constants.js +2 -0
- package/dist/constants.js.map +1 -1
- package/dist/modules/whisper/ChatHandler.js +78 -0
- package/dist/modules/whisper/ChatHandler.js.map +1 -0
- package/dist/sync/process/process-log.js +3 -3
- package/dist/sync/process/process-log.js.map +1 -1
- package/dist/sync/process/{processDisputeCreated.js → processDisputeInvolvement.js} +4 -4
- package/dist/sync/process/processDisputeInvolvement.js.map +1 -0
- package/dist/sync/process/processMarketDisputes.js +34 -0
- package/dist/sync/process/processMarketDisputes.js.map +1 -0
- package/dist/sync/sync-disputes.js +37 -0
- package/dist/sync/sync-disputes.js.map +1 -0
- package/dist/sync/sync-jobs.js +2 -1
- package/dist/sync/sync-jobs.js.map +1 -1
- package/dist/sync/sync-market-disputes.js +35 -0
- package/dist/sync/sync-market-disputes.js.map +1 -0
- package/package.json +1 -1
- package/src/OpportunityService.ts +8 -1
- package/src/api/index.ts +6 -1
- package/src/blockchain/addresses.json +6 -9
- package/src/constants.ts +3 -1
- package/src/modules/whisper/ChatHandler.ts +78 -0
- package/src/sync/process/process-log.ts +3 -3
- package/src/sync/process/{processDisputeCreated.ts → processDisputeInvolvement.ts} +3 -3
- package/src/sync/process/processMarketDisputes.ts +43 -0
- package/src/sync/sync-disputes.ts +29 -0
- package/src/sync/sync-jobs.ts +2 -1
- package/src/sync/sync-market-disputes.ts +27 -0
- package/dist/sync/process/processDisputeCreated.js.map +0 -1
@@ -14,7 +14,7 @@ import { ethers } from "ethers";
|
|
14
14
|
import { startEventListeners } from "./events/start-event-listeners";
|
15
15
|
import opportunityAPI from './api/index';
|
16
16
|
import Web3 from 'web3';
|
17
|
-
import
|
17
|
+
import WhisperHandler from "./modules/whisper/ChatHandler";
|
18
18
|
class OpportunityService {
|
19
19
|
/**
|
20
20
|
* The Singleton's constructor should always be private to prevent direct
|
@@ -30,6 +30,7 @@ class OpportunityService {
|
|
30
30
|
this.storageProvider = null;
|
31
31
|
this.currentAccount = null;
|
32
32
|
this.ethNetwork = 'rinkeby';
|
33
|
+
this.whisperProvider = null;
|
33
34
|
this.storage = null;
|
34
35
|
this.api = opportunityAPI;
|
35
36
|
this.ethNetwork = 'rinkeby';
|
@@ -48,6 +49,7 @@ class OpportunityService {
|
|
48
49
|
}
|
49
50
|
assignDefaultProvider(provider) {
|
50
51
|
OpportunityService.defaultProvider = provider;
|
52
|
+
this.whisperProvider = new WhisperHandler(provider);
|
51
53
|
}
|
52
54
|
assignProvider(provider) {
|
53
55
|
this.ethersProvider = provider;
|
@@ -72,7 +74,7 @@ class OpportunityService {
|
|
72
74
|
default:
|
73
75
|
this.ethNetwork = 'rinkeby';
|
74
76
|
}
|
75
|
-
this.storageProvider = new OpportunityStorageProvider(dbAddress)
|
77
|
+
//this.storageProvider = new OpportunityStorageProvider(dbAddress)
|
76
78
|
}
|
77
79
|
getEthNetwork() {
|
78
80
|
return this.ethNetwork;
|
@@ -130,6 +132,9 @@ class OpportunityService {
|
|
130
132
|
getSignersInterface() {
|
131
133
|
return this.ethersSigner;
|
132
134
|
}
|
135
|
+
getWhisperProvider() {
|
136
|
+
return this.whisperProvider;
|
137
|
+
}
|
133
138
|
}
|
134
139
|
OpportunityService.defaultProvider = new Web3('http://localhost:8545');
|
135
140
|
const opportunityService = OpportunityService.getInstance();
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"OpportunityService.js","sourceRoot":"","sources":["../src/OpportunityService.ts"],"names":[],"mappings":";;;;;;;;;AAAA,OAAO,EAA6B,SAAS,EAAE,aAAa,EAAE,MAAM,aAAa,CAAC;AAClF,OAAO,uBAAuB,MAAM,kCAAkC,CAAC;AACvE,OAAO,EAAE,oBAAoB,EAAE,MAAM,kCAAkC,CAAC;AAKxE,OAAO,EAAE,MAAM,EAAa,MAAM,QAAQ,CAAC;AAE3C,OAAO,EAAE,mBAAmB,EAAE,MAAM,gCAAgC,CAAC;AACrE,OAAO,cAAc,MAAM,aAAa,CAAC;AAGzC,OAAO,IAAI,MAAM,MAAM,CAAC;
|
1
|
+
{"version":3,"file":"OpportunityService.js","sourceRoot":"","sources":["../src/OpportunityService.ts"],"names":[],"mappings":"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"}
|
package/dist/api/index.js
CHANGED
@@ -19,6 +19,8 @@ import { checkVoteResults } from "./dispute/check-vote-results";
|
|
19
19
|
import { ensureEntityMetadata } from "./dispute/ensure-entity-metadata";
|
20
20
|
import { launchNewVote } from "./dispute/launch-new-vote";
|
21
21
|
import { submitVote } from "./dispute/submit-vote";
|
22
|
+
import syncCreatedDisputes from "../sync/sync-disputes";
|
23
|
+
import syncMarketDisputes from "../sync/sync-market-disputes";
|
22
24
|
function generateAPI() {
|
23
25
|
return {
|
24
26
|
crypto: {
|
@@ -53,7 +55,9 @@ function generateAPI() {
|
|
53
55
|
sync: {
|
54
56
|
syncWithEthereum: syncWithEthereumNode,
|
55
57
|
syncMarkets,
|
56
|
-
syncJobs
|
58
|
+
syncJobs,
|
59
|
+
syncCreatedDisputes,
|
60
|
+
syncMarketDisputes
|
57
61
|
}
|
58
62
|
},
|
59
63
|
provider: {
|
package/dist/api/index.js.map
CHANGED
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/api/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,oBAAoB,EAAE,MAAM,mCAAmC,CAAC;AACzE,OAAO,QAAQ,MAAM,mBAAmB,CAAC;AACzC,OAAO,WAAW,MAAM,sBAAsB,CAAC;AAC/C,OAAO,EAAE,oBAAoB,EAAE,MAAM,kCAAkC,CAAC;AACxE,OAAO,EAAE,UAAU,EAAE,MAAM,wBAAwB,CAAC;AACpD,OAAO,EAAE,qBAAqB,EAAE,MAAM,oCAAoC,CAAC;AAC3E,OAAO,eAAe,MAAM,8BAA8B,CAAC;AAC3D,OAAO,EAAE,YAAY,EAAE,MAAM,wBAAwB,CAAC;AAEtD,OAAO,EAAE,IAAI,EAAU,kBAAkB,EAAC,MAAM,kBAAkB,CAAC;AAEnE,OAAO,EAAE,SAAS,EAAE,MAAM,sBAAsB,CAAA;AAChD,OAAO,EAAE,WAAW,EAAE,MAAM,qBAAqB,CAAC;AAClD,OAAO,EAAE,eAAe,EAAE,MAAM,yBAAyB,CAAC;AAC1D,OAAO,EAAE,mBAAmB,EAAE,kBAAkB,EAAE,MAAM,8BAA8B,CAAC;AACvF,OAAO,EAAE,oBAAoB,EAAE,MAAM,iCAAiC,CAAC;AACvE,OAAO,EAAE,OAAO,EAAE,MAAM,oBAAoB,CAAC;AAC7C,OAAO,EAAE,OAAO,EAAE,MAAM,oBAAoB,CAAC;AAC7C,OAAO,EAAE,eAAe,EAAE,eAAe,EAAE,MAAM,mBAAmB,CAAC;AACrE,OAAO,EAAE,gBAAgB,EAAE,MAAM,8BAA8B,CAAC;AAChE,OAAO,EAAE,oBAAoB,EAAE,MAAM,kCAAkC,CAAC;AACxE,OAAO,EAAE,aAAa,EAAE,MAAM,2BAA2B,CAAC;AAC1D,OAAO,EAAE,UAAU,EAAE,MAAM,uBAAuB,CAAC;AAEnD,SAAS,WAAW;IAChB,OAAO;QACH,MAAM,EAAE;YACJ,kBAAkB;YAClB,mBAAmB;YACnB,oBAAoB;SACvB;QACD,QAAQ,EAAE;YACN,IAAI,EAAE,IAAI;YACV,kBAAkB;SACrB;QACD,QAAQ,EAAE;YACN,oBAAoB;YACpB,UAAU;YACV,qBAAqB;SACxB;QACD,OAAO,EAAE;YACL,eAAe,EAAE,eAAe;YAChC,eAAe,EAAE,eAAe;YAChC,gBAAgB,EAAE,gBAAgB;YAClC,oBAAoB,EAAE,oBAAoB;YAC1C,aAAa,EAAE,aAAa;YAC5B,UAAU,EAAE,UAAU;SACzB;QACD,QAAQ,EAAE;YACN,eAAe;SAClB;QACD,OAAO,EAAE;YACL,YAAY;SACf;QACD,OAAO,EAAE;YACL,IAAI,EAAE;gBACF,gBAAgB,EAAE,oBAAoB;gBACtC,WAAW;gBACX,QAAQ;
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/api/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,oBAAoB,EAAE,MAAM,mCAAmC,CAAC;AACzE,OAAO,QAAQ,MAAM,mBAAmB,CAAC;AACzC,OAAO,WAAW,MAAM,sBAAsB,CAAC;AAC/C,OAAO,EAAE,oBAAoB,EAAE,MAAM,kCAAkC,CAAC;AACxE,OAAO,EAAE,UAAU,EAAE,MAAM,wBAAwB,CAAC;AACpD,OAAO,EAAE,qBAAqB,EAAE,MAAM,oCAAoC,CAAC;AAC3E,OAAO,eAAe,MAAM,8BAA8B,CAAC;AAC3D,OAAO,EAAE,YAAY,EAAE,MAAM,wBAAwB,CAAC;AAEtD,OAAO,EAAE,IAAI,EAAU,kBAAkB,EAAC,MAAM,kBAAkB,CAAC;AAEnE,OAAO,EAAE,SAAS,EAAE,MAAM,sBAAsB,CAAA;AAChD,OAAO,EAAE,WAAW,EAAE,MAAM,qBAAqB,CAAC;AAClD,OAAO,EAAE,eAAe,EAAE,MAAM,yBAAyB,CAAC;AAC1D,OAAO,EAAE,mBAAmB,EAAE,kBAAkB,EAAE,MAAM,8BAA8B,CAAC;AACvF,OAAO,EAAE,oBAAoB,EAAE,MAAM,iCAAiC,CAAC;AACvE,OAAO,EAAE,OAAO,EAAE,MAAM,oBAAoB,CAAC;AAC7C,OAAO,EAAE,OAAO,EAAE,MAAM,oBAAoB,CAAC;AAC7C,OAAO,EAAE,eAAe,EAAE,eAAe,EAAE,MAAM,mBAAmB,CAAC;AACrE,OAAO,EAAE,gBAAgB,EAAE,MAAM,8BAA8B,CAAC;AAChE,OAAO,EAAE,oBAAoB,EAAE,MAAM,kCAAkC,CAAC;AACxE,OAAO,EAAE,aAAa,EAAE,MAAM,2BAA2B,CAAC;AAC1D,OAAO,EAAE,UAAU,EAAE,MAAM,uBAAuB,CAAC;AAEnD,OAAO,mBAAmB,MAAM,uBAAuB,CAAC;AACxD,OAAO,kBAAkB,MAAM,8BAA8B,CAAC;AAE9D,SAAS,WAAW;IAChB,OAAO;QACH,MAAM,EAAE;YACJ,kBAAkB;YAClB,mBAAmB;YACnB,oBAAoB;SACvB;QACD,QAAQ,EAAE;YACN,IAAI,EAAE,IAAI;YACV,kBAAkB;SACrB;QACD,QAAQ,EAAE;YACN,oBAAoB;YACpB,UAAU;YACV,qBAAqB;SACxB;QACD,OAAO,EAAE;YACL,eAAe,EAAE,eAAe;YAChC,eAAe,EAAE,eAAe;YAChC,gBAAgB,EAAE,gBAAgB;YAClC,oBAAoB,EAAE,oBAAoB;YAC1C,aAAa,EAAE,aAAa;YAC5B,UAAU,EAAE,UAAU;SACzB;QACD,QAAQ,EAAE;YACN,eAAe;SAClB;QACD,OAAO,EAAE;YACL,YAAY;SACf;QACD,OAAO,EAAE;YACL,IAAI,EAAE;gBACF,gBAAgB,EAAE,oBAAoB;gBACtC,WAAW;gBACX,QAAQ;gBACR,mBAAmB;gBACnB,kBAAkB;aACrB;SACJ;QACD,QAAQ,EAAE;YACN,SAAS;YACT,OAAO;YACP,OAAO;SACV;QACD,IAAI,EAAE;YACF,WAAW;YACX,eAAe;SAClB;KACJ,CAAA;AACL,CAAC;AAED,MAAM,cAAc,GAAG,WAAW,EAAE,CAAC;AAErC,eAAe,cAAc,CAAC"}
|
@@ -1,10 +1,10 @@
|
|
1
1
|
{
|
2
2
|
"rinkeby": {
|
3
|
-
"MarketFactory": "
|
4
|
-
"UserRegistration": "
|
5
|
-
"UserSummaryFactory": "
|
3
|
+
"MarketFactory": "0x850cADCF43FB7a40F8aD0C09e7F4B4A649598298",
|
4
|
+
"UserRegistration": "0x855B49FEf7e8Ece986E4A63EcA584F44114aBc0e",
|
5
|
+
"UserSummaryFactory": "0x9d64421D3472E1c1776d5E4C2d1Fdb71A1B4b541",
|
6
6
|
"Dai": "0x5592ec0cfb4dbc12d3ab100b257153436a1f0fea",
|
7
|
-
"Participation": "
|
7
|
+
"Participation": "0xC9dbEA7aeBd89acA4d138Df139E04c30Ea0FF47f"
|
8
8
|
},
|
9
9
|
"mainnet": {
|
10
10
|
"MarketFactory": "0x8eb065482F681537e90eab826540E9DF8D8cBd89",
|
package/dist/constants.js
CHANGED
@@ -67,6 +67,8 @@ export var ExchangeEvents;
|
|
67
67
|
(function (ExchangeEvents) {
|
68
68
|
ExchangeEvents["WorkRelationshipCreated"] = "WorkRelationshipCreated";
|
69
69
|
ExchangeEvents["DisputeCreated"] = "DisputeCreated";
|
70
|
+
ExchangeEvents["DisputeInvolvement"] = "MarketDispute";
|
71
|
+
ExchangeEvents["MarketDispute"] = "MarketDispute";
|
70
72
|
})(ExchangeEvents || (ExchangeEvents = {}));
|
71
73
|
export var StorageEvents;
|
72
74
|
(function (StorageEvents) {
|
package/dist/constants.js.map
CHANGED
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"constants.js","sourceRoot":"","sources":["../src/constants.ts"],"names":[],"mappings":"AAAA,OAAO,CAAC,QAAQ,CAAC,CAAC,MAAM,EAAE,CAAA;AAE1B,eAAe;AACf,MAAM,CAAC,MAAM,QAAQ,GAAG;IACtB,eAAe;IACf,kBAAkB;IAClB,QAAQ;IACR,aAAa;IACb,oBAAoB;IACpB,kBAAkB;CACnB,CAAA;AAED,MAAM,CAAN,IAAY,SAQX;AARD,WAAY,SAAS;IACnB,gCAAiB,CAAA;IACjB,gCAAiB,CAAA;IACjB,wBAAS,CAAA;IACT,mDAAoC,CAAA;IACpC,8BAAe,CAAA;IACf,6CAA8B,CAAA;IAC9B,mDAAoC,CAAA;AACtC,CAAC,EARW,SAAS,KAAT,SAAS,QAQpB;AAYD,MAAM,CAAN,IAAY,YAGX;AAHD,WAAY,YAAY;IACtB,mDAAM,CAAA;IACN,iDAAK,CAAA;AACP,CAAC,EAHW,YAAY,KAAZ,YAAY,QAGvB;AAED,IAAK,aAIJ;AAJD,WAAK,aAAa;IAChB,iFAAoB,CAAA;IACpB,yEAAgB,CAAA;IAChB,yDAAQ,CAAA;AACV,CAAC,EAJI,aAAa,KAAb,aAAa,QAIjB;AAYD,MAAM,CAAC,MAAM,iBAAiB,GAAG;IAC/B,aAAa,EAAE,CAAC,wFAAwF,CAAC;IACzG,WAAW,EAAE,CAAC,sFAAsF,CAAC;IACrG,SAAS,EAAE,CAAC;IACZ,iBAAiB,EAAE,IAAI;IACvB,YAAY,EAAE,UAAU,GAAG,IAA4B,CAAC,EAAE,uEAAuE;CAClI,CAAC;AAEF,YAAY;AACZ,MAAM,CAAN,IAAY,0BAEX;AAFD,WAAY,0BAA0B;IACpC,iEAAmC,CAAA;AACrC,CAAC,EAFW,0BAA0B,KAA1B,0BAA0B,QAErC;AAED,MAAM,CAAN,IAAY,aAGX;AAHD,WAAY,aAAa;IACvB,kDAA+B,CAAA;IAC/B,kDAA+B,CAAA;AACjC,CAAC,EAHW,aAAa,KAAb,aAAa,QAGxB;AAED,MAAM,CAAN,IAAY,SAGX;AAHD,WAAY,SAAS;IACnB,0CAA2B,CAAA;IAC3B,wCAAyB,CAAA;AAC3B,CAAC,EAHW,SAAS,KAAT,SAAS,QAGpB;AAED,MAAM,CAAN,IAAY,YAGX;AAHD,WAAY,YAAY;IACtB,+CAA6B,CAAA;IAC7B,mDAAiC,CAAA;AACnC,CAAC,EAHW,YAAY,KAAZ,YAAY,QAGvB;AAED,MAAM,CAAN,IAAY,UAKX;AALD,WAAY,UAAU;IACpB,mDAAmC,CAAA;IACnC,uDAAuC,CAAA;IACvC,+CAA+B,CAAA;IAC/B,+EAA+D,CAAA;AACjE,CAAC,EALW,UAAU,KAAV,UAAU,QAKrB;AAED,MAAM,CAAN,IAAY,
|
1
|
+
{"version":3,"file":"constants.js","sourceRoot":"","sources":["../src/constants.ts"],"names":[],"mappings":"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"}
|
@@ -0,0 +1,78 @@
|
|
1
|
+
var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
|
2
|
+
function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
|
3
|
+
return new (P || (P = Promise))(function (resolve, reject) {
|
4
|
+
function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
|
5
|
+
function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
|
6
|
+
function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
|
7
|
+
step((generator = generator.apply(thisArg, _arguments || [])).next());
|
8
|
+
});
|
9
|
+
};
|
10
|
+
import opportunityEventEmitter from "../../events/OpportunityEventEmitter";
|
11
|
+
const POW_TIME = 100;
|
12
|
+
const TTL = 20;
|
13
|
+
const POW_TARGET = 2;
|
14
|
+
class WhisperHandler {
|
15
|
+
constructor(web3) {
|
16
|
+
this.web3 = web3;
|
17
|
+
this.generateKeypair();
|
18
|
+
}
|
19
|
+
generateKeypair() {
|
20
|
+
return __awaiter(this, void 0, void 0, function* () {
|
21
|
+
const keyPair = yield this.web3.shh.newKeyPair();
|
22
|
+
this.keypair = keyPair;
|
23
|
+
// Obtain public key
|
24
|
+
const pubKey = yield this.web3.shh.getPublicKey(keyPair);
|
25
|
+
this.pubKey = pubKey;
|
26
|
+
});
|
27
|
+
}
|
28
|
+
getWhisperPubKey() {
|
29
|
+
return this.pubKey;
|
30
|
+
}
|
31
|
+
sendPrivateMessage(toPubKey, msg, topic) {
|
32
|
+
return __awaiter(this, void 0, void 0, function* () {
|
33
|
+
// Send private message
|
34
|
+
this.web3.shh.post({
|
35
|
+
pubKey: toPubKey,
|
36
|
+
sig: this.keypair,
|
37
|
+
ttl: TTL,
|
38
|
+
topic,
|
39
|
+
payload: this.web3.utils.fromAscii(msg),
|
40
|
+
powTime: POW_TIME,
|
41
|
+
powTarget: POW_TARGET
|
42
|
+
});
|
43
|
+
});
|
44
|
+
}
|
45
|
+
subscribeToTopic(topic) {
|
46
|
+
return __awaiter(this, void 0, void 0, function* () {
|
47
|
+
// Subscribe to private messages
|
48
|
+
const subscribe = (topic) => __awaiter(this, void 0, void 0, function* () {
|
49
|
+
this.web3.shh.subscribe("messages", {
|
50
|
+
minPow: POW_TARGET,
|
51
|
+
privateKeyID: this.keypair,
|
52
|
+
topics: [topic]
|
53
|
+
}).on('data', (data) => {
|
54
|
+
console.log('Receieved data: ');
|
55
|
+
console.log(data);
|
56
|
+
console.log(this.web3.utils.toAscii(data.payload));
|
57
|
+
opportunityEventEmitter.emit('WHISPER_RECEIVED', data);
|
58
|
+
}).on('error', (err) => {
|
59
|
+
console.log('Couldnt decode message');
|
60
|
+
console.log(err);
|
61
|
+
});
|
62
|
+
});
|
63
|
+
const receivedWhisper = (data) => {
|
64
|
+
console.log(data);
|
65
|
+
};
|
66
|
+
yield subscribe(topic)
|
67
|
+
.then(() => {
|
68
|
+
opportunityEventEmitter.subscribeToEvent('WHISPER_RECEIVED', receivedWhisper);
|
69
|
+
})
|
70
|
+
.catch(error => {
|
71
|
+
console.log('Error trying to subscribe to topic');
|
72
|
+
console.log(error);
|
73
|
+
});
|
74
|
+
});
|
75
|
+
}
|
76
|
+
}
|
77
|
+
export default WhisperHandler;
|
78
|
+
//# sourceMappingURL=ChatHandler.js.map
|
@@ -0,0 +1 @@
|
|
1
|
+
{"version":3,"file":"ChatHandler.js","sourceRoot":"","sources":["../../../src/modules/whisper/ChatHandler.ts"],"names":[],"mappings":"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"}
|
@@ -4,7 +4,7 @@ import { processMarketCreatedEvent } from './processMarketCreatedLog';
|
|
4
4
|
import { processMarketDestroyedEvent } from "./processMarketDestroyedEvent";
|
5
5
|
import { utils } from "ethers";
|
6
6
|
import { processWorkRelationshipCreatedEvent } from "./processWorkRelationshipCreated";
|
7
|
-
import {
|
7
|
+
import { processDisputeInvolvement } from "./processDisputeInvolvement";
|
8
8
|
/**
|
9
9
|
* Retrieves topics and process the approppriate log
|
10
10
|
* @param log
|
@@ -56,8 +56,8 @@ function processLogEvents(log) {
|
|
56
56
|
case "WorkRelationshipCreated":
|
57
57
|
processWorkRelationshipCreatedEvent(log);
|
58
58
|
break;
|
59
|
-
case "
|
60
|
-
|
59
|
+
case "DisputeInvolvement":
|
60
|
+
processDisputeInvolvement(log);
|
61
61
|
default:
|
62
62
|
}
|
63
63
|
}
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"process-log.js","sourceRoot":"","sources":["../../../src/sync/process/process-log.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAA2B,MAAM,iBAAiB,CAAC;AACpE,OAAO,KAAK,MAAM,MAAM,2BAA2B,CAAC;AACpD,OAAQ,EAAE,yBAAyB,EAAE,MAAM,2BAA2B,CAAC;AACvE,OAAO,EAAE,2BAA2B,EAAE,MAAM,+BAA+B,CAAC;AAE5E,OAAO,EAAU,KAAK,EAAE,MAAM,QAAQ,CAAC;AAGvC,OAAO,EAAE,mCAAmC,EAAE,MAAM,kCAAkC,CAAC;AACvF,OAAO,EAAE,
|
1
|
+
{"version":3,"file":"process-log.js","sourceRoot":"","sources":["../../../src/sync/process/process-log.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAA2B,MAAM,iBAAiB,CAAC;AACpE,OAAO,KAAK,MAAM,MAAM,2BAA2B,CAAC;AACpD,OAAQ,EAAE,yBAAyB,EAAE,MAAM,2BAA2B,CAAC;AACvE,OAAO,EAAE,2BAA2B,EAAE,MAAM,+BAA+B,CAAC;AAE5E,OAAO,EAAU,KAAK,EAAE,MAAM,QAAQ,CAAC;AAGvC,OAAO,EAAE,mCAAmC,EAAE,MAAM,kCAAkC,CAAC;AACvF,OAAO,EAAE,yBAAyB,EAAE,MAAM,6BAA6B,CAAC;AACxE;;;;;;;;;;;;;;GAcG;AACH,SAAS,UAAU,CAAC,GAAG;IACnB,OAAO,CAAC,GAAG,CAAC,GAAG,CAAC,CAAA;IAChB,gBAAgB,CAAC,GAAG,CAAC,CAAC;AAC1B,CAAC;AAED,SAAS,gBAAgB,CAAC,GAAG;IACzB,IAAI,KAAK,GAAG,IAAI,CAAC;IACjB,IAAI,IAAI,GAAG,IAAI,CAAC;IAChB,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,GAAG,GAAG,CAAC;IAC7B,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,QAAQ,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE;QACtC,IAAI,IAAI,GAAG,MAAM,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,QAAQ,EAAE,CAAC,CAAC;QAE1C,KAAK,MAAM,KAAK,IAAI,IAAI,EAAE;YACtB,IAAI,KAAK,CAAC,MAAM,CAAC,IAAI,OAAO,EAAE;gBAAE,SAAS;aAAE;YAAA,CAAC;YAC5C,IAAI,SAAS,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC,MAAM,CAAC,GAAG,GAAG,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC,QAAQ,CAAC,CAAC,GAAG,CAAC,UAAU,KAAK,IAAI,OAAO,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,GAAG,CAAC;YAC/H,OAAO,CAAC,GAAG,CAAC,0CAA0C,GAAG,SAAS,CAAC,CAAA;YACnE,IAAI,GAAG,KAAK,CAAC,EAAE,CAAC,SAAS,CAAC,CAAC;YAC3B,IAAI,IAAI,IAAI,MAAM,CAAC,CAAC,CAAC,EAAE;gBACnB,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC;gBACpB,MAAM;aACT;SACJ;KACJ;IAED,IAAI,KAAK,IAAI,IAAI,EAAE;QACf,QAAO,KAAK,CAAC,MAAM,CAAC,EAAE;YAClB,KAAK,eAAe;gBAChB,OAAO,CAAC,GAAG,CAAC,mBAAmB,CAAC,CAAA;gBAChC,yBAAyB,CAAC,GAAG,CAAC,CAAC;gBAC/B,MAAM;YACV,KAAK,iBAAiB;gBAClB,2BAA2B,CAAC,GAAG,CAAC,CAAC;gBACjC,MAAM;YACV,KAAK,yBAAyB;gBAC1B,mCAAmC,CAAC,GAAG,CAAC,CAAC;gBACzC,MAAM;YACV,KAAK,oBAAoB;gBACrB,yBAAyB,CAAC,GAAG,CAAC,CAAA;YAClC,QAAQ;SACX;KACJ;SAAM;QACH,OAAO,CAAC,GAAG,CAAC,qCAAqC,CAAC,CAAA;KACrD;AACL,CAAC;AAED,OAAO,EAAE,UAAU,EAAE,gBAAgB,EAAE,CAAC"}
|
@@ -7,7 +7,7 @@ import opportunityEventEmitter from '../../events/OpportunityEventEmitter';
|
|
7
7
|
* @param log
|
8
8
|
* @returns
|
9
9
|
*/
|
10
|
-
function
|
10
|
+
function processDisputeInvolvement(log) {
|
11
11
|
try {
|
12
12
|
const iface = new ethers.utils.Interface(abiMap[Contracts.DISPUTE]);
|
13
13
|
const decodedLog = iface.parseLog(log);
|
@@ -23,11 +23,11 @@ function processDisputeCreated(log) {
|
|
23
23
|
address: disputeAddress
|
24
24
|
};
|
25
25
|
console.log("Processing a dispute created event with address: " + disputeData);
|
26
|
-
opportunityEventEmitter.emit(ExchangeEvents.
|
26
|
+
opportunityEventEmitter.emit(ExchangeEvents.DisputeInvolvement, disputeData);
|
27
27
|
}
|
28
28
|
catch (error) {
|
29
29
|
console.log(error);
|
30
30
|
}
|
31
31
|
}
|
32
|
-
export {
|
33
|
-
//# sourceMappingURL=
|
32
|
+
export { processDisputeInvolvement };
|
33
|
+
//# sourceMappingURL=processDisputeInvolvement.js.map
|
@@ -0,0 +1 @@
|
|
1
|
+
{"version":3,"file":"processDisputeInvolvement.js","sourceRoot":"","sources":["../../../src/sync/process/processDisputeInvolvement.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,cAAc,EAAgB,MAAM,iBAAiB,CAAC;AAC1E,OAAO,KAAK,MAAM,MAAM,2BAA2B,CAAC;AAIpD,OAAO,EAAE,MAAM,EAAE,MAAM,QAAQ,CAAC;AAEhC,OAAO,uBAAuB,MAAM,sCAAsC,CAAC;AAG3E;;;;GAIG;AACH,SAAS,yBAAyB,CAAC,GAAG;IAClC,IAAI;QACJ,MAAM,KAAK,GAAe,IAAI,MAAM,CAAC,KAAK,CAAC,SAAS,CAAC,MAAM,CAAC,SAAS,CAAC,OAAO,CAAC,CAAC,CAAC;QAChF,MAAM,UAAU,GAAoB,KAAK,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC;QACxD,MAAM,EAAE,IAAI,EAAE,SAAS,EAAE,GAAG,UAAU,CAAC;QAEvC,MAAM,QAAQ,GAAG,IAAI,CAAC,CAAC,CAAC,CAAA;QACxB,MAAM,MAAM,GAAG,IAAI,CAAC,CAAC,CAAC,CAAA;QACtB,MAAM,YAAY,GAAG,IAAI,CAAC,CAAC,CAAC,CAAA;QAC5B,MAAM,cAAc,GAAG,IAAI,CAAC,CAAC,CAAC,CAAC;QAE/B,MAAM,WAAW,GAAG;YAChB,QAAQ;YACR,MAAM;YACN,YAAY;YACZ,OAAO,EAAE,cAAc;SAC1B,CAAA;QAED,OAAO,CAAC,GAAG,CAAC,mDAAmD,GAAG,WAAW,CAAC,CAAA;QAE9E,uBAAuB,CAAC,IAAI,CAAC,cAAc,CAAC,kBAAkB,EAAE,WAAW,CAAC,CAAC;KAChF;IAAC,OAAM,KAAK,EAAE;QACX,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,CAAA;KACrB;AACD,CAAC;AAED,OAAO,EAAE,yBAAyB,EAAE,CAAC"}
|
@@ -0,0 +1,34 @@
|
|
1
|
+
import { Contracts, ExchangeEvents } from '../../constants';
|
2
|
+
import * as abiMap from '../../blockchain/abi.json';
|
3
|
+
import { ethers } from 'ethers';
|
4
|
+
import opportunityEventEmitter from '../../events/OpportunityEventEmitter';
|
5
|
+
/**
|
6
|
+
* WorkRelationshipCreated(address owner, address relationship, address market)
|
7
|
+
* @param log
|
8
|
+
* @returns
|
9
|
+
*/
|
10
|
+
function processMarketDispute(log) {
|
11
|
+
try {
|
12
|
+
const iface = new ethers.utils.Interface(abiMap[Contracts.DISPUTE]);
|
13
|
+
const decodedLog = iface.parseLog(log);
|
14
|
+
const { args, signature } = decodedLog;
|
15
|
+
const employer = args[0];
|
16
|
+
const worker = args[1];
|
17
|
+
const relationship = args[2];
|
18
|
+
const disputeAddress = args[3];
|
19
|
+
const marketAddress = args[4];
|
20
|
+
const disputeData = {
|
21
|
+
employer,
|
22
|
+
worker,
|
23
|
+
relationship,
|
24
|
+
address: disputeAddress
|
25
|
+
};
|
26
|
+
console.log("Processing a dispute created in the market: " + marketAddress);
|
27
|
+
opportunityEventEmitter.emit(ExchangeEvents.MarketDispute, disputeData);
|
28
|
+
}
|
29
|
+
catch (error) {
|
30
|
+
console.log(error);
|
31
|
+
}
|
32
|
+
}
|
33
|
+
export { processMarketDispute };
|
34
|
+
//# sourceMappingURL=processMarketDisputes.js.map
|
@@ -0,0 +1 @@
|
|
1
|
+
{"version":3,"file":"processMarketDisputes.js","sourceRoot":"","sources":["../../../src/sync/process/processMarketDisputes.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,cAAc,EAAgB,MAAM,iBAAiB,CAAC;AAC1E,OAAO,KAAK,MAAM,MAAM,2BAA2B,CAAC;AAIpD,OAAO,EAAE,MAAM,EAAE,MAAM,QAAQ,CAAC;AAEhC,OAAO,uBAAuB,MAAM,sCAAsC,CAAC;AAG3E;;;;GAIG;AACH,SAAS,oBAAoB,CAAC,GAAG;IAC7B,IAAI;QACJ,MAAM,KAAK,GAAe,IAAI,MAAM,CAAC,KAAK,CAAC,SAAS,CAAC,MAAM,CAAC,SAAS,CAAC,OAAO,CAAC,CAAC,CAAC;QAChF,MAAM,UAAU,GAAoB,KAAK,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC;QACxD,MAAM,EAAE,IAAI,EAAE,SAAS,EAAE,GAAG,UAAU,CAAC;QAEvC,MAAM,QAAQ,GAAG,IAAI,CAAC,CAAC,CAAC,CAAA;QACxB,MAAM,MAAM,GAAG,IAAI,CAAC,CAAC,CAAC,CAAA;QACtB,MAAM,YAAY,GAAG,IAAI,CAAC,CAAC,CAAC,CAAA;QAC5B,MAAM,cAAc,GAAG,IAAI,CAAC,CAAC,CAAC,CAAC;QAC/B,MAAM,aAAa,GAAG,IAAI,CAAC,CAAC,CAAC,CAAA;QAE7B,MAAM,WAAW,GAAG;YAChB,QAAQ;YACR,MAAM;YACN,YAAY;YACZ,OAAO,EAAE,cAAc;SAC1B,CAAA;QAED,OAAO,CAAC,GAAG,CAAC,8CAA8C,GAAG,aAAa,CAAC,CAAA;QAE3E,uBAAuB,CAAC,IAAI,CAAC,cAAc,CAAC,aAAa,EAAE,WAAW,CAAC,CAAC;KAC3E;IAAC,OAAM,KAAK,EAAE;QACX,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,CAAA;KACrB;AACD,CAAC;AAED,OAAO,EAAE,oBAAoB,EAAE,CAAC"}
|
@@ -0,0 +1,37 @@
|
|
1
|
+
var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
|
2
|
+
function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
|
3
|
+
return new (P || (P = Promise))(function (resolve, reject) {
|
4
|
+
function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
|
5
|
+
function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
|
6
|
+
function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
|
7
|
+
step((generator = generator.apply(thisArg, _arguments || [])).next());
|
8
|
+
});
|
9
|
+
};
|
10
|
+
import opportunityService from "../OpportunityService";
|
11
|
+
import { processLog } from './process/process-log';
|
12
|
+
function syncCreatedDisputes(userSummaryAddress) {
|
13
|
+
return __awaiter(this, void 0, void 0, function* () {
|
14
|
+
if (opportunityService.getProviderInterface()) {
|
15
|
+
yield opportunityService.getProviderInterface().getLogs({
|
16
|
+
address: userSummaryAddress,
|
17
|
+
fromBlock: 1,
|
18
|
+
toBlock: 'latest',
|
19
|
+
topics: [
|
20
|
+
'DisputeCreated(address,address,address,address)'
|
21
|
+
]
|
22
|
+
}).then((logs) => {
|
23
|
+
console.log('Found logs.. Processing sync disputes');
|
24
|
+
logs.forEach(log => {
|
25
|
+
if (log && Array.isArray(log.topics) && log.topics.length) {
|
26
|
+
processLog(log); // keccashinside here
|
27
|
+
}
|
28
|
+
});
|
29
|
+
})
|
30
|
+
.catch(err => {
|
31
|
+
console.log('Err on fetching logs from blockchain: ' + err);
|
32
|
+
});
|
33
|
+
}
|
34
|
+
});
|
35
|
+
}
|
36
|
+
export default syncCreatedDisputes;
|
37
|
+
//# sourceMappingURL=sync-disputes.js.map
|
@@ -0,0 +1 @@
|
|
1
|
+
{"version":3,"file":"sync-disputes.js","sourceRoot":"","sources":["../../src/sync/sync-disputes.ts"],"names":[],"mappings":";;;;;;;;;AAAA,OAAO,kBAAkB,MAAM,uBAAuB,CAAC;AACvD,OAAO,EAAE,UAAU,EAAE,MAAM,uBAAuB,CAAC;AAInD,SAAe,mBAAmB,CAAC,kBAAkB;;QACjD,IAAI,kBAAkB,CAAC,oBAAoB,EAAE,EAAE;YAC9C,MAAM,kBAAkB,CAAC,oBAAoB,EAAE,CAAC,OAAO,CAAC;gBACrD,OAAO,EAAE,kBAAkB;gBAC3B,SAAS,EAAE,CAAC;gBACZ,OAAO,EAAE,QAAQ;gBACjB,MAAM,EAAE;oBACJ,iDAAiD;iBACpD;aACJ,CAAC,CAAC,IAAI,CAAC,CAAC,IAAI,EAAE,EAAE;gBACb,OAAO,CAAC,GAAG,CAAC,uCAAuC,CAAC,CAAA;gBACpD,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,EAAE;oBACf,IAAI,GAAG,IAAI,KAAK,CAAC,OAAO,CAAC,GAAG,CAAC,MAAM,CAAC,IAAI,GAAG,CAAC,MAAM,CAAC,MAAM,EAAE;wBACvD,UAAU,CAAC,GAAG,CAAC,CAAC,CAAC,qBAAqB;qBACzC;gBACL,CAAC,CAAC,CAAA;YACN,CAAC,CAAC;iBACD,KAAK,CAAC,GAAG,CAAC,EAAE;gBACT,OAAO,CAAC,GAAG,CAAC,wCAAwC,GAAG,GAAG,CAAC,CAAA;YAC/D,CAAC,CAAC,CAAA;SACL;IACD,CAAC;CAAA;AAED,eAAe,mBAAmB,CAAC"}
|
package/dist/sync/sync-jobs.js
CHANGED
@@ -16,7 +16,8 @@ function syncJobs(marketAddress) {
|
|
16
16
|
yield opportunityService.getProviderInterface().getLogs({
|
17
17
|
address: marketAddress,
|
18
18
|
fromBlock: 1,
|
19
|
-
toBlock: 'latest'
|
19
|
+
toBlock: 'latest',
|
20
|
+
topics: ['WorkRelationshipCreated(address,address,address)']
|
20
21
|
}).then((logs) => {
|
21
22
|
console.log('Found logs.. Processing sync Jobs');
|
22
23
|
logs.forEach(log => {
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"sync-jobs.js","sourceRoot":"","sources":["../../src/sync/sync-jobs.ts"],"names":[],"mappings":";;;;;;;;;AAAA,OAAO,kBAAkB,MAAM,uBAAuB,CAAC;AACvD,OAAO,EAAE,UAAU,EAAE,MAAM,uBAAuB,CAAC;AAInD,SAAe,QAAQ,CAAC,aAAa;;QACjC,IAAI,kBAAkB,CAAC,oBAAoB,EAAE,EAAE;YAC9C,WAAW;YACX,MAAM,kBAAkB,CAAC,oBAAoB,EAAE,CAAC,OAAO,CAAC;gBACrD,OAAO,EAAE,aAAa;gBACtB,SAAS,EAAE,CAAC;gBACZ,OAAO,EAAE,QAAQ;
|
1
|
+
{"version":3,"file":"sync-jobs.js","sourceRoot":"","sources":["../../src/sync/sync-jobs.ts"],"names":[],"mappings":";;;;;;;;;AAAA,OAAO,kBAAkB,MAAM,uBAAuB,CAAC;AACvD,OAAO,EAAE,UAAU,EAAE,MAAM,uBAAuB,CAAC;AAInD,SAAe,QAAQ,CAAC,aAAa;;QACjC,IAAI,kBAAkB,CAAC,oBAAoB,EAAE,EAAE;YAC9C,WAAW;YACX,MAAM,kBAAkB,CAAC,oBAAoB,EAAE,CAAC,OAAO,CAAC;gBACrD,OAAO,EAAE,aAAa;gBACtB,SAAS,EAAE,CAAC;gBACZ,OAAO,EAAE,QAAQ;gBACjB,MAAM,EAAE,CAAC,kDAAkD,CAAC;aAC/D,CAAC,CAAC,IAAI,CAAC,CAAC,IAAI,EAAE,EAAE;gBACb,OAAO,CAAC,GAAG,CAAC,mCAAmC,CAAC,CAAA;gBAChD,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,EAAE;oBACf,IAAI,GAAG,IAAI,KAAK,CAAC,OAAO,CAAC,GAAG,CAAC,MAAM,CAAC,IAAI,GAAG,CAAC,MAAM,CAAC,MAAM,EAAE;wBACvD,UAAU,CAAC,GAAG,CAAC,CAAC,CAAC,qBAAqB;qBACzC;gBACL,CAAC,CAAC,CAAA;YACN,CAAC,CAAC;iBACD,KAAK,CAAC,GAAG,CAAC,EAAE;gBACT,OAAO,CAAC,GAAG,CAAC,wCAAwC,GAAG,GAAG,CAAC,CAAA;YAC/D,CAAC,CAAC,CAAA;SACL;IACD,CAAC;CAAA;AAED,eAAe,QAAQ,CAAC"}
|
@@ -0,0 +1,35 @@
|
|
1
|
+
var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
|
2
|
+
function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
|
3
|
+
return new (P || (P = Promise))(function (resolve, reject) {
|
4
|
+
function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
|
5
|
+
function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
|
6
|
+
function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
|
7
|
+
step((generator = generator.apply(thisArg, _arguments || [])).next());
|
8
|
+
});
|
9
|
+
};
|
10
|
+
import opportunityService from "../OpportunityService";
|
11
|
+
import { processLog } from './process/process-log';
|
12
|
+
function syncMarketDisputes(marketAddress) {
|
13
|
+
return __awaiter(this, void 0, void 0, function* () {
|
14
|
+
if (opportunityService.getProviderInterface()) {
|
15
|
+
yield opportunityService.getProviderInterface().getLogs({
|
16
|
+
address: marketAddress,
|
17
|
+
fromBlock: 1,
|
18
|
+
toBlock: 'latest',
|
19
|
+
topics: ['MarketDispute(address,address,address,address,address)']
|
20
|
+
}).then((logs) => {
|
21
|
+
console.log('Found logs.. Processing sync market disputes');
|
22
|
+
logs.forEach(log => {
|
23
|
+
if (log && Array.isArray(log.topics) && log.topics.length) {
|
24
|
+
processLog(log); // keccashinside here
|
25
|
+
}
|
26
|
+
});
|
27
|
+
})
|
28
|
+
.catch(err => {
|
29
|
+
console.log('Err on fetching logs from blockchain: ' + err);
|
30
|
+
});
|
31
|
+
}
|
32
|
+
});
|
33
|
+
}
|
34
|
+
export default syncMarketDisputes;
|
35
|
+
//# sourceMappingURL=sync-market-disputes.js.map
|
@@ -0,0 +1 @@
|
|
1
|
+
{"version":3,"file":"sync-market-disputes.js","sourceRoot":"","sources":["../../src/sync/sync-market-disputes.ts"],"names":[],"mappings":";;;;;;;;;AAAA,OAAO,kBAAkB,MAAM,uBAAuB,CAAC;AACvD,OAAO,EAAE,UAAU,EAAE,MAAM,uBAAuB,CAAC;AAInD,SAAe,kBAAkB,CAAC,aAAa;;QAC3C,IAAI,kBAAkB,CAAC,oBAAoB,EAAE,EAAE;YAC9C,MAAM,kBAAkB,CAAC,oBAAoB,EAAE,CAAC,OAAO,CAAC;gBACrD,OAAO,EAAE,aAAa;gBACtB,SAAS,EAAE,CAAC;gBACZ,OAAO,EAAE,QAAQ;gBACjB,MAAM,EAAE,CAAC,wDAAwD,CAAC;aACrE,CAAC,CAAC,IAAI,CAAC,CAAC,IAAI,EAAE,EAAE;gBACb,OAAO,CAAC,GAAG,CAAC,8CAA8C,CAAC,CAAA;gBAC3D,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,EAAE;oBACf,IAAI,GAAG,IAAI,KAAK,CAAC,OAAO,CAAC,GAAG,CAAC,MAAM,CAAC,IAAI,GAAG,CAAC,MAAM,CAAC,MAAM,EAAE;wBACvD,UAAU,CAAC,GAAG,CAAC,CAAC,CAAC,qBAAqB;qBACzC;gBACL,CAAC,CAAC,CAAA;YACN,CAAC,CAAC;iBACD,KAAK,CAAC,GAAG,CAAC,EAAE;gBACT,OAAO,CAAC,GAAG,CAAC,wCAAwC,GAAG,GAAG,CAAC,CAAA;YAC/D,CAAC,CAAC,CAAA;SACL;IACD,CAAC;CAAA;AAED,eAAe,kBAAkB,CAAC"}
|
package/package.json
CHANGED
@@ -14,6 +14,7 @@ import opportunityStorageProvider from "./modules/storage/OpportunityStorageProv
|
|
14
14
|
import Web3 from 'web3';
|
15
15
|
import OpportunityStorageProvider from "./modules/storage/OpportunityStorageProvider";
|
16
16
|
import { EthNetworkID } from "dvote-js";
|
17
|
+
import WhisperHandler from "./modules/whisper/ChatHandler";
|
17
18
|
|
18
19
|
class OpportunityService {
|
19
20
|
private eventEmitter = opportunityEventEmitter;
|
@@ -26,6 +27,7 @@ class OpportunityService {
|
|
26
27
|
private storageProvider = null;
|
27
28
|
private currentAccount = null;
|
28
29
|
private ethNetwork : EthNetworkID | string = 'rinkeby'
|
30
|
+
private whisperProvider = null;
|
29
31
|
public storage = null
|
30
32
|
|
31
33
|
private static instance: OpportunityService;
|
@@ -56,6 +58,7 @@ class OpportunityService {
|
|
56
58
|
|
57
59
|
assignDefaultProvider(provider : Web3) {
|
58
60
|
OpportunityService.defaultProvider = provider;
|
61
|
+
this.whisperProvider = new WhisperHandler(provider);
|
59
62
|
}
|
60
63
|
|
61
64
|
assignProvider(provider : any) {
|
@@ -86,7 +89,7 @@ class OpportunityService {
|
|
86
89
|
this.ethNetwork = 'rinkeby'
|
87
90
|
}
|
88
91
|
|
89
|
-
this.storageProvider = new OpportunityStorageProvider(dbAddress)
|
92
|
+
//this.storageProvider = new OpportunityStorageProvider(dbAddress)
|
90
93
|
}
|
91
94
|
|
92
95
|
public getEthNetwork(): EthNetworkID | string {
|
@@ -147,6 +150,10 @@ class OpportunityService {
|
|
147
150
|
getSignersInterface() : providers.JsonRpcSigner {
|
148
151
|
return this.ethersSigner;
|
149
152
|
}
|
153
|
+
|
154
|
+
getWhisperProvider() : any {
|
155
|
+
return this.whisperProvider
|
156
|
+
}
|
150
157
|
}
|
151
158
|
|
152
159
|
const opportunityService = OpportunityService.getInstance();
|
package/src/api/index.ts
CHANGED
@@ -22,6 +22,9 @@ import { ensureEntityMetadata } from "./dispute/ensure-entity-metadata";
|
|
22
22
|
import { launchNewVote } from "./dispute/launch-new-vote";
|
23
23
|
import { submitVote } from "./dispute/submit-vote";
|
24
24
|
|
25
|
+
import syncCreatedDisputes from "../sync/sync-disputes";
|
26
|
+
import syncMarketDisputes from "../sync/sync-market-disputes";
|
27
|
+
|
25
28
|
function generateAPI() {
|
26
29
|
return {
|
27
30
|
crypto: {
|
@@ -56,7 +59,9 @@ function generateAPI() {
|
|
56
59
|
sync: {
|
57
60
|
syncWithEthereum: syncWithEthereumNode,
|
58
61
|
syncMarkets,
|
59
|
-
syncJobs
|
62
|
+
syncJobs,
|
63
|
+
syncCreatedDisputes,
|
64
|
+
syncMarketDisputes
|
60
65
|
}
|
61
66
|
},
|
62
67
|
provider: {
|
@@ -1,11 +1,11 @@
|
|
1
1
|
{
|
2
2
|
"rinkeby": {
|
3
|
-
"MarketFactory": "
|
4
|
-
"UserRegistration": "
|
5
|
-
"UserSummaryFactory": "
|
3
|
+
"MarketFactory": "0x850cADCF43FB7a40F8aD0C09e7F4B4A649598298",
|
4
|
+
"UserRegistration": "0x855B49FEf7e8Ece986E4A63EcA584F44114aBc0e",
|
5
|
+
"UserSummaryFactory": "0x9d64421D3472E1c1776d5E4C2d1Fdb71A1B4b541",
|
6
6
|
"Dai": "0x5592ec0cfb4dbc12d3ab100b257153436a1f0fea",
|
7
|
-
"Participation": "
|
8
|
-
},
|
7
|
+
"Participation": "0xC9dbEA7aeBd89acA4d138Df139E04c30Ea0FF47f"
|
8
|
+
},
|
9
9
|
"mainnet": {
|
10
10
|
"MarketFactory": "0x8eb065482F681537e90eab826540E9DF8D8cBd89",
|
11
11
|
"UserRegistration": "0xc4F1B570e57A5035a25035AFA5f7CbA204627024",
|
@@ -16,7 +16,4 @@
|
|
16
16
|
"xdai": {
|
17
17
|
|
18
18
|
}
|
19
|
-
}
|
20
|
-
|
21
|
-
|
22
|
-
|
19
|
+
}
|
package/src/constants.ts
CHANGED
@@ -88,7 +88,9 @@ export enum UserEvents {
|
|
88
88
|
|
89
89
|
export enum ExchangeEvents {
|
90
90
|
WorkRelationshipCreated='WorkRelationshipCreated',
|
91
|
-
DisputeCreated='DisputeCreated'
|
91
|
+
DisputeCreated='DisputeCreated',
|
92
|
+
DisputeInvolvement='MarketDispute',
|
93
|
+
MarketDispute='MarketDispute'
|
92
94
|
}
|
93
95
|
|
94
96
|
export enum StorageEvents {
|
@@ -0,0 +1,78 @@
|
|
1
|
+
import opportunityEventEmitter from "../../events/OpportunityEventEmitter";
|
2
|
+
import Web3 from "web3";
|
3
|
+
|
4
|
+
const POW_TIME = 100;
|
5
|
+
const TTL = 20;
|
6
|
+
const POW_TARGET = 2;
|
7
|
+
|
8
|
+
class WhisperHandler {
|
9
|
+
private web3;
|
10
|
+
private keypair;
|
11
|
+
private pubKey;
|
12
|
+
|
13
|
+
constructor(web3: Web3) {
|
14
|
+
this.web3 = web3;
|
15
|
+
this.generateKeypair()
|
16
|
+
}
|
17
|
+
|
18
|
+
async generateKeypair() {
|
19
|
+
const keyPair = await this.web3.shh.newKeyPair();
|
20
|
+
this.keypair = keyPair;
|
21
|
+
|
22
|
+
// Obtain public key
|
23
|
+
const pubKey = await this.web3.shh.getPublicKey(keyPair);
|
24
|
+
this.pubKey = pubKey;
|
25
|
+
}
|
26
|
+
|
27
|
+
|
28
|
+
getWhisperPubKey() {
|
29
|
+
return this.pubKey;
|
30
|
+
}
|
31
|
+
|
32
|
+
async sendPrivateMessage(toPubKey: string, msg: string, topic: string) {
|
33
|
+
// Send private message
|
34
|
+
this.web3.shh.post({
|
35
|
+
pubKey: toPubKey,
|
36
|
+
sig: this.keypair,
|
37
|
+
ttl: TTL,
|
38
|
+
topic,
|
39
|
+
payload: this.web3.utils.fromAscii(msg),
|
40
|
+
powTime: POW_TIME,
|
41
|
+
powTarget: POW_TARGET
|
42
|
+
});
|
43
|
+
}
|
44
|
+
|
45
|
+
async subscribeToTopic(topic: string) {
|
46
|
+
// Subscribe to private messages
|
47
|
+
const subscribe = async (topic: string) => {
|
48
|
+
this.web3.shh.subscribe("messages", {
|
49
|
+
minPow: POW_TARGET,
|
50
|
+
privateKeyID: this.keypair,
|
51
|
+
topics: [topic]
|
52
|
+
}).on('data', (data) => {
|
53
|
+
console.log('Receieved data: ')
|
54
|
+
console.log(data)
|
55
|
+
console.log(this.web3.utils.toAscii(data.payload))
|
56
|
+
opportunityEventEmitter.emit('WHISPER_RECEIVED', data)
|
57
|
+
}).on('error', (err) => {
|
58
|
+
console.log('Couldnt decode message')
|
59
|
+
console.log(err)
|
60
|
+
});
|
61
|
+
}
|
62
|
+
|
63
|
+
const receivedWhisper = (data) => {
|
64
|
+
console.log(data)
|
65
|
+
}
|
66
|
+
|
67
|
+
await subscribe(topic)
|
68
|
+
.then(() => {
|
69
|
+
opportunityEventEmitter.subscribeToEvent('WHISPER_RECEIVED', receivedWhisper)
|
70
|
+
})
|
71
|
+
.catch(error => {
|
72
|
+
console.log('Error trying to subscribe to topic')
|
73
|
+
console.log(error)
|
74
|
+
})
|
75
|
+
}
|
76
|
+
}
|
77
|
+
|
78
|
+
export default WhisperHandler;
|
@@ -7,7 +7,7 @@ import { ethers, utils } from "ethers";
|
|
7
7
|
import { hexZeroPad } from "@ethersproject/bytes";
|
8
8
|
import { decode } from "node:punycode";
|
9
9
|
import { processWorkRelationshipCreatedEvent } from "./processWorkRelationshipCreated";
|
10
|
-
import {
|
10
|
+
import { processDisputeInvolvement } from "./processDisputeInvolvement";
|
11
11
|
/**
|
12
12
|
* Retrieves topics and process the approppriate log
|
13
13
|
* @param log
|
@@ -59,8 +59,8 @@ function processLogEvents(log) {
|
|
59
59
|
case "WorkRelationshipCreated":
|
60
60
|
processWorkRelationshipCreatedEvent(log);
|
61
61
|
break;
|
62
|
-
case "
|
63
|
-
|
62
|
+
case "DisputeInvolvement":
|
63
|
+
processDisputeInvolvement(log)
|
64
64
|
default:
|
65
65
|
}
|
66
66
|
} else {
|
@@ -13,7 +13,7 @@ import opportunityEventEmitter from '../../events/OpportunityEventEmitter';
|
|
13
13
|
* @param log
|
14
14
|
* @returns
|
15
15
|
*/
|
16
|
-
function
|
16
|
+
function processDisputeInvolvement(log) {
|
17
17
|
try {
|
18
18
|
const iface : Interface = new ethers.utils.Interface(abiMap[Contracts.DISPUTE]);
|
19
19
|
const decodedLog : LogDescription = iface.parseLog(log);
|
@@ -33,10 +33,10 @@ function processDisputeCreated(log) {
|
|
33
33
|
|
34
34
|
console.log("Processing a dispute created event with address: " + disputeData)
|
35
35
|
|
36
|
-
opportunityEventEmitter.emit(ExchangeEvents.
|
36
|
+
opportunityEventEmitter.emit(ExchangeEvents.DisputeInvolvement, disputeData);
|
37
37
|
} catch(error) {
|
38
38
|
console.log(error)
|
39
39
|
}
|
40
40
|
}
|
41
41
|
|
42
|
-
export {
|
42
|
+
export { processDisputeInvolvement };
|
@@ -0,0 +1,43 @@
|
|
1
|
+
import { Contracts, ExchangeEvents, MarketEvents } from '../../constants';
|
2
|
+
import * as abiMap from '../../blockchain/abi.json';
|
3
|
+
import * as addressMap from '../../blockchain/addresses.json';
|
4
|
+
import opportunityService from '../../OpportunityService';
|
5
|
+
import { Contract } from '@ethersproject/contracts';
|
6
|
+
import { ethers } from 'ethers';
|
7
|
+
import { AbiCoder, EventFragment, Interface, LogDescription, Result } from '@ethersproject/abi';
|
8
|
+
import opportunityEventEmitter from '../../events/OpportunityEventEmitter';
|
9
|
+
|
10
|
+
|
11
|
+
/**
|
12
|
+
* WorkRelationshipCreated(address owner, address relationship, address market)
|
13
|
+
* @param log
|
14
|
+
* @returns
|
15
|
+
*/
|
16
|
+
function processMarketDispute(log) {
|
17
|
+
try {
|
18
|
+
const iface : Interface = new ethers.utils.Interface(abiMap[Contracts.DISPUTE]);
|
19
|
+
const decodedLog : LogDescription = iface.parseLog(log);
|
20
|
+
const { args, signature } = decodedLog;
|
21
|
+
|
22
|
+
const employer = args[0]
|
23
|
+
const worker = args[1]
|
24
|
+
const relationship = args[2]
|
25
|
+
const disputeAddress = args[3];
|
26
|
+
const marketAddress = args[4]
|
27
|
+
|
28
|
+
const disputeData = {
|
29
|
+
employer,
|
30
|
+
worker,
|
31
|
+
relationship,
|
32
|
+
address: disputeAddress
|
33
|
+
}
|
34
|
+
|
35
|
+
console.log("Processing a dispute created in the market: " + marketAddress)
|
36
|
+
|
37
|
+
opportunityEventEmitter.emit(ExchangeEvents.MarketDispute, disputeData);
|
38
|
+
} catch(error) {
|
39
|
+
console.log(error)
|
40
|
+
}
|
41
|
+
}
|
42
|
+
|
43
|
+
export { processMarketDispute };
|
@@ -0,0 +1,29 @@
|
|
1
|
+
import opportunityService from "../OpportunityService";
|
2
|
+
import { processLog } from './process/process-log';
|
3
|
+
import * as addressMap from '../blockchain/addresses.json';
|
4
|
+
import { Contracts } from '../constants';
|
5
|
+
|
6
|
+
async function syncCreatedDisputes(userSummaryAddress) {
|
7
|
+
if (opportunityService.getProviderInterface()) {
|
8
|
+
await opportunityService.getProviderInterface().getLogs({
|
9
|
+
address: userSummaryAddress,
|
10
|
+
fromBlock: 1,
|
11
|
+
toBlock: 'latest',
|
12
|
+
topics: [
|
13
|
+
'DisputeCreated(address,address,address,address)'
|
14
|
+
]
|
15
|
+
}).then((logs) => {
|
16
|
+
console.log('Found logs.. Processing sync disputes')
|
17
|
+
logs.forEach(log => {
|
18
|
+
if (log && Array.isArray(log.topics) && log.topics.length) {
|
19
|
+
processLog(log); // keccashinside here
|
20
|
+
}
|
21
|
+
})
|
22
|
+
})
|
23
|
+
.catch(err => {
|
24
|
+
console.log('Err on fetching logs from blockchain: ' + err)
|
25
|
+
})
|
26
|
+
}
|
27
|
+
}
|
28
|
+
|
29
|
+
export default syncCreatedDisputes;
|
package/src/sync/sync-jobs.ts
CHANGED
@@ -9,7 +9,8 @@ async function syncJobs(marketAddress) {
|
|
9
9
|
await opportunityService.getProviderInterface().getLogs({
|
10
10
|
address: marketAddress,
|
11
11
|
fromBlock: 1,
|
12
|
-
toBlock: 'latest'
|
12
|
+
toBlock: 'latest',
|
13
|
+
topics: ['WorkRelationshipCreated(address,address,address)']
|
13
14
|
}).then((logs) => {
|
14
15
|
console.log('Found logs.. Processing sync Jobs')
|
15
16
|
logs.forEach(log => {
|
@@ -0,0 +1,27 @@
|
|
1
|
+
import opportunityService from "../OpportunityService";
|
2
|
+
import { processLog } from './process/process-log';
|
3
|
+
import * as addressMap from '../blockchain/addresses.json';
|
4
|
+
import { Contracts } from '../constants';
|
5
|
+
|
6
|
+
async function syncMarketDisputes(marketAddress) {
|
7
|
+
if (opportunityService.getProviderInterface()) {
|
8
|
+
await opportunityService.getProviderInterface().getLogs({
|
9
|
+
address: marketAddress,
|
10
|
+
fromBlock: 1,
|
11
|
+
toBlock: 'latest',
|
12
|
+
topics: ['MarketDispute(address,address,address,address,address)']
|
13
|
+
}).then((logs) => {
|
14
|
+
console.log('Found logs.. Processing sync market disputes')
|
15
|
+
logs.forEach(log => {
|
16
|
+
if (log && Array.isArray(log.topics) && log.topics.length) {
|
17
|
+
processLog(log); // keccashinside here
|
18
|
+
}
|
19
|
+
})
|
20
|
+
})
|
21
|
+
.catch(err => {
|
22
|
+
console.log('Err on fetching logs from blockchain: ' + err)
|
23
|
+
})
|
24
|
+
}
|
25
|
+
}
|
26
|
+
|
27
|
+
export default syncMarketDisputes;
|
@@ -1 +0,0 @@
|
|
1
|
-
{"version":3,"file":"processDisputeCreated.js","sourceRoot":"","sources":["../../../src/sync/process/processDisputeCreated.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,cAAc,EAAgB,MAAM,iBAAiB,CAAC;AAC1E,OAAO,KAAK,MAAM,MAAM,2BAA2B,CAAC;AAIpD,OAAO,EAAE,MAAM,EAAE,MAAM,QAAQ,CAAC;AAEhC,OAAO,uBAAuB,MAAM,sCAAsC,CAAC;AAG3E;;;;GAIG;AACH,SAAS,qBAAqB,CAAC,GAAG;IAC9B,IAAI;QACJ,MAAM,KAAK,GAAe,IAAI,MAAM,CAAC,KAAK,CAAC,SAAS,CAAC,MAAM,CAAC,SAAS,CAAC,OAAO,CAAC,CAAC,CAAC;QAChF,MAAM,UAAU,GAAoB,KAAK,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC;QACxD,MAAM,EAAE,IAAI,EAAE,SAAS,EAAE,GAAG,UAAU,CAAC;QAEvC,MAAM,QAAQ,GAAG,IAAI,CAAC,CAAC,CAAC,CAAA;QACxB,MAAM,MAAM,GAAG,IAAI,CAAC,CAAC,CAAC,CAAA;QACtB,MAAM,YAAY,GAAG,IAAI,CAAC,CAAC,CAAC,CAAA;QAC5B,MAAM,cAAc,GAAG,IAAI,CAAC,CAAC,CAAC,CAAC;QAE/B,MAAM,WAAW,GAAG;YAChB,QAAQ;YACR,MAAM;YACN,YAAY;YACZ,OAAO,EAAE,cAAc;SAC1B,CAAA;QAED,OAAO,CAAC,GAAG,CAAC,mDAAmD,GAAG,WAAW,CAAC,CAAA;QAE9E,uBAAuB,CAAC,IAAI,CAAC,cAAc,CAAC,uBAAuB,EAAE,WAAW,CAAC,CAAC;KACrF;IAAC,OAAM,KAAK,EAAE;QACX,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,CAAA;KACrB;AACD,CAAC;AAED,OAAO,EAAE,qBAAqB,EAAE,CAAC"}
|