opportunity-service 0.0.503 → 0.0.508
Sign up to get free protection for your applications and to get access to all the features.
- package/.env +6 -1
- package/dist/OpportunityService.js +29 -28
- package/dist/OpportunityService.js.map +1 -1
- package/dist/api/ethereum/sendAsync.js +3 -10
- package/dist/api/ethereum/sendAsync.js.map +1 -1
- package/dist/api/exchange/complete-relationship.js +1 -4
- package/dist/api/exchange/complete-relationship.js.map +1 -1
- package/dist/api/exchange/create-dispute.js +41 -0
- package/dist/api/exchange/create-dispute.js.map +1 -0
- package/dist/api/exchange/create-task.js +9 -33
- package/dist/api/exchange/create-task.js.map +1 -1
- package/dist/api/exchange/enter-work-relationship.js +1 -4
- package/dist/api/exchange/enter-work-relationship.js.map +1 -1
- package/dist/api/exchange/inspect-relationship.js +1 -4
- package/dist/api/exchange/inspect-relationship.js.map +1 -1
- package/dist/api/identity/register-new-user.js +8 -32
- package/dist/api/identity/register-new-user.js.map +1 -1
- package/dist/api/index.js +23 -28
- package/dist/api/index.js.map +1 -1
- package/dist/api/internal/abis.js +3 -24
- package/dist/api/internal/abis.js.map +1 -1
- package/dist/api/internal/addresses.js +8 -28
- package/dist/api/internal/addresses.js.map +1 -1
- package/dist/api/internal/events.js +12 -14
- package/dist/api/internal/events.js.map +1 -1
- package/dist/api/internal/index.js +4 -12
- package/dist/api/internal/index.js.map +1 -1
- package/dist/api/market/create-market.js +1 -4
- package/dist/api/market/create-market.js.map +1 -1
- package/dist/api/voting/census.js +38 -0
- package/dist/api/voting/census.js.map +1 -0
- package/dist/api/voting/connect.js +33 -0
- package/dist/api/voting/connect.js.map +1 -0
- package/dist/api/voting/entity.js +39 -0
- package/dist/api/voting/entity.js.map +1 -0
- package/dist/api/voting/process.js +101 -0
- package/dist/api/voting/process.js.map +1 -0
- package/dist/blockchain/abi.json +2 -1
- package/dist/blockchain/addresses.json +12 -5
- package/dist/blockchain/bytecode.json +2 -1
- package/dist/constants/interface.js +1 -0
- package/dist/constants/interface.js.map +1 -0
- package/dist/constants/voting.js +1 -0
- package/dist/constants/voting.js.map +1 -0
- package/dist/constants.js +34 -39
- package/dist/constants.js.map +1 -1
- package/dist/events/OpportunityEventEmitter.js +3 -5
- package/dist/events/OpportunityEventEmitter.js.map +1 -1
- package/dist/events/start-event-listeners.js +3 -9
- package/dist/events/start-event-listeners.js.map +1 -1
- package/dist/events/sync-with-ethereum-node.js +3 -9
- package/dist/events/sync-with-ethereum-node.js.map +1 -1
- package/dist/modules/storage/OpportunityStorageProvider.js +3 -8
- package/dist/modules/storage/OpportunityStorageProvider.js.map +1 -1
- package/dist/sync/process/process-log.js +16 -36
- package/dist/sync/process/process-log.js.map +1 -1
- package/dist/sync/process/processDisputeCreated.js +33 -0
- package/dist/sync/process/processDisputeCreated.js.map +1 -0
- package/dist/sync/process/processMarketCreatedLog.js +7 -32
- package/dist/sync/process/processMarketCreatedLog.js.map +1 -1
- package/dist/sync/process/processMarketDestroyedEvent.js +1 -4
- package/dist/sync/process/processMarketDestroyedEvent.js.map +1 -1
- package/dist/sync/process/processUserAssignedTrueIdentification.js +7 -12
- package/dist/sync/process/processUserAssignedTrueIdentification.js.map +1 -1
- package/dist/sync/process/processUserRegistered.js +7 -12
- package/dist/sync/process/processUserRegistered.js.map +1 -1
- package/dist/sync/process/processUserSummaryCreated.js +7 -12
- package/dist/sync/process/processUserSummaryCreated.js.map +1 -1
- package/dist/sync/process/processWorkRelationshipCreated.js +9 -34
- package/dist/sync/process/processWorkRelationshipCreated.js.map +1 -1
- package/dist/sync/sync-jobs.js +5 -10
- package/dist/sync/sync-jobs.js.map +1 -1
- package/dist/sync/sync-markets.js +8 -32
- package/dist/sync/sync-markets.js.map +1 -1
- package/dist/types.js +1 -2
- package/gateways.all.json +190 -0
- package/package.json +23 -10
- package/src/OpportunityService.ts +9 -0
- package/src/api/exchange/create-dispute.ts +42 -0
- package/src/api/exchange/create-task.ts +1 -1
- package/src/api/identity/register-new-user.ts +1 -1
- package/src/api/internal/abis.ts +1 -1
- package/src/api/internal/addresses.ts +7 -5
- package/src/api/voting/census.ts +39 -0
- package/src/api/voting/connect.ts +34 -0
- package/src/api/voting/entity.ts +33 -0
- package/src/api/voting/process.ts +119 -0
- package/src/blockchain/abi.json +2 -1
- package/src/blockchain/addresses.json +16 -6
- package/src/blockchain/bytecode.json +2 -1
- package/src/{modules/whisper/ChatHttpServer.ts → constants/interface.ts} +0 -0
- package/src/{modules/whisper/ChatSocketServer.ts → constants/voting.ts} +0 -0
- package/src/constants.ts +9 -11
- package/src/sync/process/process-log.ts +3 -2
- package/src/sync/process/processDisputeCreated.ts +42 -0
- package/src/sync/sync-markets.ts +1 -1
- package/test/voting.test.ts +20 -0
- package/tsconfig.json +5 -3
- package/dist/modules/whisper/ChatHttpServer.js +0 -1
- package/dist/modules/whisper/ChatHttpServer.js.map +0 -1
- package/dist/modules/whisper/ChatSocketServer.js +0 -1
- package/dist/modules/whisper/ChatSocketServer.js.map +0 -1
- package/dist/modules/whisper/OpportunityChatProvider.js +0 -63
- package/dist/modules/whisper/OpportunityChatProvider.js.map +0 -1
- package/dist/rpc/connection.js +0 -1
- package/dist/rpc/connection.js.map +0 -1
- package/dist/rpc/index.js +0 -1
- package/dist/rpc/index.js.map +0 -1
- package/dist/rpc/interface/rpc-interface.js +0 -5
- package/dist/rpc/interface/rpc-interface.js.map +0 -1
- package/src/modules/whisper/OpportunityChatProvider.ts +0 -60
- package/src/rpc/connection.ts +0 -0
- package/src/rpc/index.ts +0 -0
- package/src/rpc/interface/rpc-interface.ts +0 -2
@@ -0,0 +1,119 @@
|
|
1
|
+
import * as assert from "assert"
|
2
|
+
import { ProcessMetadata, VochainWaiter, CensusOffChainApi, EntityApi, ProcessMetadataTemplate, INewProcessParams, ProcessMode, VotingApi, ProcessEnvelopeType, ProcessCensusOrigin, Voting, } from "dvote-js"
|
3
|
+
import { providers } from "ethers"
|
4
|
+
import gwPool from "./connect"
|
5
|
+
|
6
|
+
import { CensusOffChain } from "dvote-js/dist/api/census"
|
7
|
+
import opportunityService from "../../OpportunityService"
|
8
|
+
|
9
|
+
/**
|
10
|
+
* As it happened before, the JSON metadata is pinned on IPFS and pointed to from the process smart contract. In addition, some metadata fields are also stored on the smart contract so they can be accessed on-chain.
|
11
|
+
* The contract flags define how the process will behave, whereas the metadata is used to store the human readable content.
|
12
|
+
* In about 2-3 minutes, the Ethereum transaction will be relayed to the voting blockchain as well. When the block number reaches startBlock, the process will become open to those who are part of the census. The startBlock value should be at least 25 blocks ahead of the current value.
|
13
|
+
*
|
14
|
+
* @param censusRoot
|
15
|
+
* @param censusUri
|
16
|
+
* @param details
|
17
|
+
* @param entityWallet
|
18
|
+
*/
|
19
|
+
export async function createVotingProcess(
|
20
|
+
censusRoot,
|
21
|
+
censusUri,
|
22
|
+
details : ProcessMetadata,
|
23
|
+
entityWallet : providers.JsonRpcSigner
|
24
|
+
) {
|
25
|
+
console.log("Preparing the new vote metadata")
|
26
|
+
console.log("Getting the block height")
|
27
|
+
const currentBlock = await VotingApi.getBlockHeight(gwPool)
|
28
|
+
const startBlock = currentBlock + 25
|
29
|
+
const blockCount = 60480
|
30
|
+
|
31
|
+
const processParamsPre: INewProcessParams = {
|
32
|
+
|
33
|
+
mode: ProcessMode.make({ autoStart: true, interruptible: true }), // helper
|
34
|
+
envelopeType: ProcessEnvelopeType.ENCRYPTED_VOTES, // bit mask
|
35
|
+
censusOrigin: ProcessCensusOrigin.OFF_CHAIN_TREE,
|
36
|
+
metadata: details,
|
37
|
+
censusRoot: censusRoot,
|
38
|
+
censusUri: censusUri,
|
39
|
+
startBlock,
|
40
|
+
blockCount,
|
41
|
+
maxCount: 1,
|
42
|
+
maxValue: 3,
|
43
|
+
maxTotalCost: 0,
|
44
|
+
costExponent: 10000,
|
45
|
+
maxVoteOverwrites: 1,
|
46
|
+
paramsSignature: "0x0000000000000000000000000000000000000000000000000000000000000000"
|
47
|
+
}
|
48
|
+
|
49
|
+
console.log("Creating the process")
|
50
|
+
|
51
|
+
const processId = await VotingApi.newProcess(processParamsPre, entityWallet, gwPool)
|
52
|
+
//assert(processId)
|
53
|
+
|
54
|
+
//processMetadata = processParamsPre.metadata
|
55
|
+
|
56
|
+
// Reading back
|
57
|
+
//processParams = await VotingApi.getProcessContractParameters(processId, gwPool)
|
58
|
+
//assert.strictEqual(processParams.entityAddress.toLowerCase(), entityAddr.toLowerCase())
|
59
|
+
//assert.strictEqual(processParams.startBlock, processParamsPre.startBlock, "SENT " + JSON.stringify(processParamsPre) + " GOT " + JSON.stringify(processParams))
|
60
|
+
//assert.strictEqual(processParams.blockCount, processParamsPre.blockCount)
|
61
|
+
//assert.strictEqual(processParams.censusRoot, processParamsPre.censusRoot)
|
62
|
+
//assert.strictEqual(processParams.censusUri, processParamsPre.censusUri)
|
63
|
+
}
|
64
|
+
|
65
|
+
async function vote(processId, choices, publicKey) {
|
66
|
+
// Fetch the metadata
|
67
|
+
const processMeta = await VotingApi.getProcessMetadata(processId, gwPool)
|
68
|
+
const processParams = await VotingApi.getProcessContractParameters(processId, gwPool)
|
69
|
+
|
70
|
+
console.log("- Starting:", await VotingApi.estimateDateAtBlock(processMeta.startBlock, gwPool))
|
71
|
+
console.log("- Ending:", await VotingApi.estimateDateAtBlock(processMeta.startBlock + processMeta.numberOfBlocks, gwPool))
|
72
|
+
console.log("- Census size:", await CensusOffChainApi.getSize(processMeta.census.merkleRoot, gwPool))
|
73
|
+
console.log("- Current block:", await VotingApi.getBlockHeight(gwPool))
|
74
|
+
console.log("- Current votes:", await VotingApi.getEnvelopeHeight(processId, gwPool))
|
75
|
+
|
76
|
+
await VochainWaiter.waitUntil(processParams.startBlock, gwPool, { verbose: true })
|
77
|
+
//await waitUntilVochainBlock(processMeta.startBlock, gwPool, { verbose: true })
|
78
|
+
|
79
|
+
console.log("Submitting vote envelopes")
|
80
|
+
|
81
|
+
// Hash the voter's public key
|
82
|
+
const publicKeyHash = CensusOffChain.Public.encodePublicKey(publicKey) //supposed to be digestPublicKey(x, y)?
|
83
|
+
|
84
|
+
// Generate the census proof
|
85
|
+
const merkleProof = await CensusOffChainApi.generateProof(
|
86
|
+
processParams.censusRoot,
|
87
|
+
{ key: Buffer.from(String(publicKey), "hex").toString("base64"), value: 0 },
|
88
|
+
true,
|
89
|
+
gwPool
|
90
|
+
)
|
91
|
+
|
92
|
+
// Sign the vote envelope with our choices
|
93
|
+
const voteEnvelope = await VotingApi.packageSignedEnvelope({ votes: choices, censusOrigin: 0, censusProof: merkleProof, processLeys: processId, walletOrSigner: opportunityService.getSignersInterface() })
|
94
|
+
|
95
|
+
// If the process had encrypted votes:
|
96
|
+
// const voteEnvelope = await packagePollEnvelope({ votes, merkleProof, processId, walletOrSigner: wallet, encryptionPubKeys: ["..."] })
|
97
|
+
|
98
|
+
await VotingApi.submitEnvelope(voteEnvelope, opportunityService.getSignersInterface(), gwPool)
|
99
|
+
console.log("Envelope submitted")
|
100
|
+
}
|
101
|
+
|
102
|
+
/*
|
103
|
+
async function checkVoteStatus() {
|
104
|
+
// Compute our deterministic nullifier to check the status of our vote
|
105
|
+
const nullifier = await getPollNullifier(wallet.address, processId)
|
106
|
+
const status = await VotingApi.getEnvelopeStatus(processId, nullifier, pool)
|
107
|
+
|
108
|
+
console.log("- Registered: ", status.registered)
|
109
|
+
console.log("- Block: ", status.block)
|
110
|
+
console.log("- Date: ", status.date)
|
111
|
+
}*/
|
112
|
+
|
113
|
+
|
114
|
+
async function fetchResults(processId) {
|
115
|
+
const { results, status } = await VotingApi.getResults(processId, gwPool)
|
116
|
+
console.log("Process results", results)
|
117
|
+
}
|
118
|
+
|
119
|
+
|
package/src/blockchain/abi.json
CHANGED
@@ -1,7 +1,17 @@
|
|
1
1
|
{
|
2
|
-
"
|
3
|
-
|
4
|
-
|
5
|
-
|
6
|
-
|
7
|
-
}
|
2
|
+
"rinkeby": {
|
3
|
+
"MarketFactory": "0xc4d293b967C86DC0fC0Fd41850223464431a40de",
|
4
|
+
"UserRegistration": "0xA81d698B0F165E4833239a75300a2cA0DCC8F72d",
|
5
|
+
"Dai": "0xD5942d62e7c57690F1B89A672ACa0E6F20aAD247",
|
6
|
+
"Scheduler": "0x"
|
7
|
+
},
|
8
|
+
"mainnet": {
|
9
|
+
"MarketFactory": "0x8eb065482F681537e90eab826540E9DF8D8cBd89",
|
10
|
+
"UserRegistration": "0xc4F1B570e57A5035a25035AFA5f7CbA204627024",
|
11
|
+
"Dai": "0x6b175474e89094c44da98b954eedeac495271d0f",
|
12
|
+
"Scheduler": "0x"
|
13
|
+
}
|
14
|
+
}
|
15
|
+
|
16
|
+
|
17
|
+
|
@@ -1,3 +1,4 @@
|
|
1
1
|
{
|
2
|
-
"WorkRelationship": "60a06040819052600060808190526200001b91600291620000ee565b506040805160208101918290526000908190526200003c91600391620000ee565b503480156200004a57600080fd5b50604051620023c5380380620023c58339810160408190526200006d9162000194565b600180546001600160a01b0385166001600160a01b031991821617825560008054909116905560048054849260ff60a81b1990911690600160a81b908490811115620000bd57620000bd620002e9565b02179055506004805460ff60a01b191690558051620000e4906002906020840190620000ee565b5050505062000315565b828054620000fc90620002ac565b90600052602060002090601f0160209004810192826200012057600085556200016b565b82601f106200013b57805160ff19168380011785556200016b565b828001600101855582156200016b579182015b828111156200016b5782518255916020019190600101906200014e565b50620001799291506200017d565b5090565b5b808211156200017957600081556001016200017e565b600080600060608486031215620001aa57600080fd5b83516001600160a01b0381168114620001c257600080fd5b8093505060208085015160028110620001da57600080fd5b60408601519093506001600160401b0380821115620001f857600080fd5b818701915087601f8301126200020d57600080fd5b815181811115620002225762000222620002ff565b604051601f8201601f19908116603f011681019083821181831017156200024d576200024d620002ff565b816040528281528a868487010111156200026657600080fd5b600093505b828410156200028a57848401860151818501870152928501926200026b565b828411156200029c5760008684830101525b8096505050505050509250925092565b600181811c90821680620002c157607f821691505b60208210811415620002e357634e487b7160e01b600052602260045260246000fd5b50919050565b634e487b7160e01b600052602160045260246000fd5b634e487b7160e01b600052604160045260246000fd5b6120a080620003256000396000f3fe60806040523480156200001157600080fd5b5060043610620001095760003560e01c8063a924b62911620000a3578063df502c6b116200006e578063df502c6b146200022a578063e6e885931462000234578063ec3a47901462000258578063f74cc701146200026f57600080fd5b8063a924b62914620001db578063b4fedc1114620001f2578063cb2ef6f714620001fc578063d8a845cf146200022057600080fd5b80635cdcf07511620000e45780635cdcf075146200016c5780635db28c66146200018357806396d6d696146200019c5780639aed0c1714620001c457600080fd5b80632a705703146200010e57806335e9281914620001245780634d547ada146200013b575b600080fd5b620001226200011f36600462000ef6565b50565b005b620001226200013536600462000ebd565b62000286565b6000546200014f906001600160a01b031681565b6040516001600160a01b0390911681526020015b60405180910390f35b620001226200017d36600462000d06565b62000305565b6200018d6200036b565b60405162000163919062000f94565b620001b3620001ad36600462000d74565b62000433565b604051901515815260200162000163565b62000122620001d536600462000e94565b620004c2565b62000122620001ec36600462000d2d565b6200056b565b62000122620008b1565b6004546200021190600160a81b900460ff1681565b60405162000163919062000f60565b6200012262000975565b6200018d62000a52565b6004546200024990600160a01b900460ff1681565b60405162000163919062000f7d565b620001226200026936600462000ebd565b62000ae8565b620001226200028036600462000e4b565b62000b2e565b6000546001600160a01b03163314620002bc5760405162461bcd60e51b8152600401620002b39062000ff2565b60405180910390fd5b600580600454600160a01b900460ff166005811115620002e057620002e0620010cd565b14620002eb57600080fd5b81516200030090600390602085019062000ba6565b505050565b60048054604051632ed9c42160e11b81526001600160a01b0384811693820193909352911690635db3884290602401600060405180830381600087803b1580156200034f57600080fd5b505af115801562000364573d6000803e3d6000fd5b5050505050565b6001546060906001600160a01b031633146200039b5760405162461bcd60e51b8152600401620002b39062000fa9565b60038054620003aa906200107a565b80601f0160208091040260200160405190810160405280929190818152602001828054620003d8906200107a565b8015620004295780601f10620003fd5761010080835404028352916020019162000429565b820191906000526020600020905b8154815290600101906020018083116200040b57829003601f168201915b5050505050905090565b600080836001600160a01b0316635d5f221f846040518263ffffffff1660e01b81526004016200046491906200103c565b602060405180830381600087803b1580156200047f57600080fd5b505af115801562000494573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620004ba919062000e2b565b949350505050565b6000546001600160a01b03163314620004ef5760405162461bcd60e51b8152600401620002b39062000ff2565b600480546040516353318a8760e01b815291820186905260ff8516602483015260448201849052606482018390526001600160a01b0316906353318a87906084015b600060405180830381600087803b1580156200054c57600080fd5b505af115801562000561573d6000803e3d6000fd5b5050505050505050565b6001600454600160a81b900460ff1660018111156200058e576200058e620010cd565b1415620006ea57600080600454600160a01b900460ff166005811115620005b957620005b9620010cd565b14620005c457600080fd5b6001600160a01b038416620005d857600080fd5b600080546001600160a01b0319166001600160a01b03868116919091179091556001546040518692919091169085908590620006149062000c35565b6001600160a01b039485168152928416602084015260408301919091529091166060820152608001604051809103906000f08015801562000659573d6000803e3d6000fd5b5060048054600560a01b6001600160a81b03199091166001600160a01b0393841617179081905516620006905762000690620010b7565b6000546001600160a01b03858116911614620006b057620006b0620010b7565b6005600454600160a01b900460ff166005811115620006d357620006d3620010cd565b14620006e357620006e3620010b7565b506200075d565b6001546001600160a01b031633146200075d5760405162461bcd60e51b815260206004820152602e60248201527f43616c6c6572206973206e6f74206f776e657220616e6420636f6e747261637460448201526d1034b9903737ba10333630b9b41760911b6064820152608401620002b3565b600080600454600160a01b900460ff166005811115620007815762000781620010cd565b146200078c57600080fd5b6001600160a01b038416620007a057600080fd5b600080546001600160a01b0319166001600160a01b03868116919091179091556001546040518692919091169085908590620007dc9062000c35565b6001600160a01b039485168152928416602084015260408301919091529091166060820152608001604051809103906000f08015801562000821573d6000803e3d6000fd5b5060048054600560a01b6001600160a81b03199091166001600160a01b0393841617179081905516620008585762000858620010b7565b6000546001600160a01b03858116911614620008785762000878620010b7565b6005600454600160a01b900460ff1660058111156200089b576200089b620010cd565b14620008ab57620008ab620010b7565b50505050565b6001546001600160a01b03163314620008de5760405162461bcd60e51b8152600401620002b39062000fa9565b6003600454600160a01b900460ff166005811115620009015762000901620010cd565b1415620009605760405162461bcd60e51b815260206004820152602660248201527f546869732072656c6174696f6e7368697020697320616c726561647920636f6d6044820152651c1b195d195960d21b6064820152608401620002b3565b6004805460ff60a01b1916600360a01b179055565b6000546001600160a01b03163314620009a25760405162461bcd60e51b8152600401620002b39062000ff2565b6003600454600160a01b900460ff166005811115620009c557620009c5620010cd565b1415620009d157600080fd5b6003600454600160a01b900460ff166005811115620009f457620009f4620010cd565b141562000a0057600080fd5b600080546001600160a01b03191690556004805460ff60a01b191690556000600454600160a01b900460ff16600581111562000a405762000a40620010cd565b1462000a505762000a50620010b7565b565b6002805462000a61906200107a565b80601f016020809104026020016040519081016040528092919081815260200182805462000a8f906200107a565b801562000ae05780601f1062000ab45761010080835404028352916020019162000ae0565b820191906000526020600020905b81548152906001019060200180831162000ac257829003601f168201915b505050505081565b6001546001600160a01b0316331462000b155760405162461bcd60e51b8152600401620002b39062000fa9565b805162000b2a90600290602084019062000ba6565b5050565b6001546001600160a01b0316331462000b5b5760405162461bcd60e51b8152600401620002b39062000fa9565b600480546040516325b0db0f60e01b81528615159281019290925260ff8516602483015260448201849052606482018390526001600160a01b0316906325b0db0f9060840162000531565b82805462000bb4906200107a565b90600052602060002090601f01602090048101928262000bd8576000855562000c23565b82601f1062000bf357805160ff191683800117855562000c23565b8280016001018555821562000c23579182015b8281111562000c2357825182559160200191906001019062000c06565b5062000c3192915062000c43565b5090565b610f4c806200111f83390190565b5b8082111562000c31576000815560010162000c44565b600082601f83011262000c6c57600080fd5b813567ffffffffffffffff8082111562000c8a5762000c8a620010e3565b604051601f8301601f19908116603f0116810190828211818310171562000cb55762000cb5620010e3565b8160405283815286602085880101111562000ccf57600080fd5b836020870160208301376000602085830101528094505050505092915050565b803560ff8116811462000d0157600080fd5b919050565b60006020828403121562000d1957600080fd5b813562000d2681620010f9565b9392505050565b60008060006060848603121562000d4357600080fd5b833562000d5081620010f9565b925060208401359150604084013562000d6981620010f9565b809150509250925092565b6000806040838503121562000d8857600080fd5b823562000d9581620010f9565b9150602083013567ffffffffffffffff8082111562000db357600080fd5b908401906060828703121562000dc857600080fd5b60405160608101818110838211171562000de65762000de6620010e3565b60405282358281111562000df957600080fd5b62000e078882860162000c5a565b82525060208301356020820152604083013560408201528093505050509250929050565b60006020828403121562000e3e57600080fd5b815162000d26816200110f565b6000806000806080858703121562000e6257600080fd5b843562000e6f816200110f565b935062000e7f6020860162000cef565b93969395505050506040820135916060013590565b6000806000806080858703121562000eab57600080fd5b8435935062000e7f6020860162000cef565b60006020828403121562000ed057600080fd5b813567ffffffffffffffff81111562000ee857600080fd5b620004ba8482850162000c5a565b60006020828403121562000f0957600080fd5b5035919050565b6000815180845260005b8181101562000f385760208185018101518683018201520162000f1a565b8181111562000f4b576000602083870101525b50601f01601f19169290920160200192915050565b602081016002831062000f775762000f77620010cd565b91905290565b602081016006831062000f775762000f77620010cd565b60208152600062000d26602083018462000f10565b60208082526029908201527f576f726b52656c6174696f6e736869703a2063616c6c6572206973206e6f74206040820152683a34329037bbb732b960b91b606082015260800190565b6020808252602a908201527f576f726b52656c6174696f6e736869703a2063616c6c6572206973206e6f74206040820152693a3432903bb7b935b2b960b11b606082015260800190565b6020815260008251606060208401526200105a608084018262000f10565b905060208401516040840152604084015160608401528091505092915050565b600181811c908216806200108f57607f821691505b60208210811415620010b157634e487b7160e01b600052602260045260246000fd5b50919050565b634e487b7160e01b600052600160045260246000fd5b634e487b7160e01b600052602160045260246000fd5b634e487b7160e01b600052604160045260246000fd5b6001600160a01b03811681146200011f57600080fd5b80151581146200011f57600080fdfe61010060405234801561001157600080fd5b50604051610f4c380380610f4c8339810160408190526100309161021f565b838383836001600160a01b03831661007f5760405162461bcd60e51b815260206004820152600d60248201526c34b73b30b634b21037bbb732b960991b60448201526064015b60405180910390fd5b6001600160a01b0381166100d55760405162461bcd60e51b815260206004820152601960248201527f696e76616c69642064616920746f6b656e2061646472657373000000000000006044820152606401610076565b6040805180820182526006815265657363726f7760d01b6020918201528151808301835260018152603160f81b9082015281517f8b73c3c69bb8fe3d512ecc4cf759cc79239f7b179b0ffacaa9a75d522b39400f918101919091527f5c24c10d65ac9aa9e0f7f63d96fe83c89107fae52b4ef778334c906c1ec5c1ed918101919091527fc89efdaa54c0f20c7adf612882df0950f5a951637e0307cdcb4c672f298b8bc660608201524660ff811660808301523060a08301529060c00160408051808303601f1901815291905280516020909101206080525060e091909152606091821b6001600160601b031990811660c0529290911b90911660a052600080546001600160a81b0319166101006001600160a01b0393909316929092029190911790555061026c92505050565b80516001600160a01b038116811461021a57600080fd5b919050565b6000806000806080858703121561023557600080fd5b61023e85610203565b935061024c60208601610203565b92506040850151915061026160608601610203565b905092959194509250565b60805160a05160601c60c05160601c60e051610c5b6102f1600039600081816101bc0152610750015260008181610231015281816103b4015281816106aa0152818161072801526107d5015260008181610122015281816104250152818161052c01526105bd01526000818161020a0152818161030801526104de0152610c5b6000f3fe608060405234801561001057600080fd5b50600436106100cf5760003560e01c80635db388421161008c578063bfce14ea11610066578063bfce14ea14610205578063c7c4ff461461022c578063cefd6c2114610253578063ea8a1af01461026657600080fd5b80635db38842146101a45780637df38c5b146101b757806396118e44146101de57600080fd5b806301162b93146100d4578063200d2ed2146100e757806325b0db0f1461010a57806338af3eed1461011d5780633c86f6f31461015c57806353318a8714610191575b600080fd5b6100e56100e2366004610a23565b50565b005b6000546100f49060ff1681565b6040516101019190610b91565b60405180910390f35b6100e5610118366004610a53565b61026e565b6101447f000000000000000000000000000000000000000000000000000000000000000081565b6040516001600160a01b039091168152602001610101565b6101837ffa5e0016fb62b8dffda8fd95249d438edcffd3689b40ac3b4281d4cf710609ae81565b604051908152602001610101565b6100e561019f366004610a9c565b610451565b6100e56101b2366004610a23565b6100e2565b6101837f000000000000000000000000000000000000000000000000000000000000000081565b6101837f62b607caa4d4e7fcbd31bf4c033cd30888b536567fadc83710fdf15f8d5cfc9e81565b6101837f000000000000000000000000000000000000000000000000000000000000000081565b6101447f000000000000000000000000000000000000000000000000000000000000000081565b6100e5610261366004610adb565b610638565b6100e5610866565b60028060005460ff16600481111561028857610288610c0f565b146102ae5760405162461bcd60e51b81526004016102a590610bb9565b60405180910390fd5b604080517ffa5e0016fb62b8dffda8fd95249d438edcffd3689b40ac3b4281d4cf710609ae6020808301919091528715158284015282518083038401815260608301909352825192019190912061190160f01b60808301527f0000000000000000000000000000000000000000000000000000000000000000608283015260a282015260009060c20160408051601f1981840301815282825280516020918201206000845290830180835281905260ff8816918301919091526060820186905260808201859052915060019060a0016020604051602081039080840390855afa15801561039f573d6000803e3d6000fd5b505050602060405103516001600160a01b03167f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03161461041a5760405162461bcd60e51b815260206004820152600e60248201526d1a5b9d985b1a590b5c195c9b5a5d60921b60448201526064016102a5565b8515610449576104497f00000000000000000000000000000000000000000000000000000000000000006108dd565b505050505050565b60018060005460ff16600481111561046b5761046b610c0f565b146104885760405162461bcd60e51b81526004016102a590610bb9565b604080517f62b607caa4d4e7fcbd31bf4c033cd30888b536567fadc83710fdf15f8d5cfc9e60208083019190915281830188905282518083038401815260608301845280519082012061190160f01b60808401527f0000000000000000000000000000000000000000000000000000000000000000608284015260a2808401919091528351808403909101815260c290920190925280519101206001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001661055557600080fd5b60408051600081526020810180835283905260ff871691810191909152606081018590526080810184905260019060a0016020604051602081039080840390855afa1580156105a8573d6000803e3d6000fd5b505050602060405103516001600160a01b03167f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316146106235760405162461bcd60e51b815260206004820152600e60248201526d1a5b9d985b1a590b5c195c9b5a5d60921b60448201526064016102a5565b50506000805460ff1916600217905550505050565b60008060005460ff16600481111561065257610652610c0f565b1461066f5760405162461bcd60e51b81526004016102a590610bb9565b60008054600160ff199091168117918290556040516323f2ebc360e21b81526101009092046001600160a01b031691638fcbaf0c916106de917f00000000000000000000000000000000000000000000000000000000000000009130918f918f918f908f908f90600401610b48565b600060405180830381600087803b1580156106f857600080fd5b505af115801561070c573d6000803e3d6000fd5b505060005460405163f2d5d56b60e01b81526001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000811660048301527f00000000000000000000000000000000000000000000000000000000000000006024830152610100909204909116925063f2d5d56b9150604401600060405180830381600087803b1580156107a357600080fd5b505af11580156107b7573d6000803e3d6000fd5b505060005461010090046001600160a01b03169150638fcbaf0c90507f0000000000000000000000000000000000000000000000000000000000000000306108008d6001610be9565b8c60008a8a8a6040518963ffffffff1660e01b8152600401610829989796959493929190610b48565b600060405180830381600087803b15801561084357600080fd5b505af1158015610857573d6000803e3d6000fd5b50505050505050505050505050565b6000805460ff16600481111561087e5761087e610c0f565b14806108a05750600360005460ff16600481111561089e5761089e610c0f565b145b6108db5760405162461bcd60e51b815260206004820152600c60248201526b77726f6e672073746174757360a01b60448201526064016102a5565b565b6001600160a01b0381166108f057600080fd5b6001600160a01b038116158015610913576000805460ff19166004179055610921565b6000805460ff191660031790555b80610a09576000546040516370a0823160e01b81523060048201526101009091046001600160a01b03169063b753a98c90849083906370a082319060240160206040518083038186803b15801561097757600080fd5b505afa15801561098b573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906109af9190610ac2565b6040516001600160e01b031960e085901b1681526001600160a01b0390921660048301526024820152604401600060405180830381600087803b1580156109f557600080fd5b505af1158015610449573d6000803e3d6000fd5b5050565b803560ff81168114610a1e57600080fd5b919050565b600060208284031215610a3557600080fd5b81356001600160a01b0381168114610a4c57600080fd5b9392505050565b60008060008060808587031215610a6957600080fd5b84358015158114610a7957600080fd5b9350610a8760208601610a0d565b93969395505050506040820135916060013590565b60008060008060808587031215610ab257600080fd5b84359350610a8760208601610a0d565b600060208284031215610ad457600080fd5b5051919050565b600080600080600080600080610100898b031215610af857600080fd5b8835975060208901359650610b0f60408a01610a0d565b95506060890135945060808901359350610b2b60a08a01610a0d565b925060c0890135915060e089013590509295985092959890939650565b6001600160a01b039889168152969097166020870152604086019490945260608501929092521515608084015260ff1660a083015260c082015260e08101919091526101000190565b6020810160058310610bb357634e487b7160e01b600052602160045260246000fd5b91905290565b602080825260169082015275119b881b9bdd081c1c995cd95b9d1b1e481d985b1a5960521b604082015260600190565b60008219821115610c0a57634e487b7160e01b600052601160045260246000fd5b500190565b634e487b7160e01b600052602160045260246000fdfea26469706673582212200dfb7d4879f0c54293a2c77d28f59b47457f108afb2639ea88aa8009dbf01f6f64736f6c63430008070033a2646970667358221220565576616b112eaa2077d5cc0db20ded8539f33c3a9997be4d66ddca2c5141eb64736f6c63430008070033"
|
2
|
+
"WorkRelationship": "",
|
3
|
+
"Scheduler": ""
|
3
4
|
}
|
File without changes
|
File without changes
|
package/src/constants.ts
CHANGED
@@ -14,14 +14,11 @@ export enum Contracts {
|
|
14
14
|
CONTROL='Control',
|
15
15
|
DISPUTE='Dispute',
|
16
16
|
DAI='Dai',
|
17
|
-
WORK_EXCHANGE='WorkExchange',
|
18
17
|
WORK_RELATIONSHIP='WorkRelationship',
|
19
18
|
MARKET='Market',
|
20
19
|
MARKET_FACTORY='MarketFactory',
|
21
|
-
|
22
|
-
|
23
|
-
STRINGUTILS='StringUtils',
|
24
|
-
USER_REGISTRATION='UserRegistration'
|
20
|
+
USER_REGISTRATION='UserRegistration',
|
21
|
+
SCHEDULER='Scheduler'
|
25
22
|
}
|
26
23
|
|
27
24
|
export const enum WorkRelationshipState {
|
@@ -39,6 +36,12 @@ export enum ContractType {
|
|
39
36
|
FLASH
|
40
37
|
}
|
41
38
|
|
39
|
+
enum DisputeStatus {
|
40
|
+
AWAITING_ARBITRATORS,
|
41
|
+
PENDING_DECISION,
|
42
|
+
RESOLVED
|
43
|
+
}
|
44
|
+
|
42
45
|
|
43
46
|
/* Web3 */
|
44
47
|
|
@@ -86,6 +89,7 @@ export enum UserEvents {
|
|
86
89
|
|
87
90
|
export enum ExchangeEvents {
|
88
91
|
WorkRelationshipCreated='WorkRelationshipCreated',
|
92
|
+
DisputeCreated='DisputeCreated'
|
89
93
|
}
|
90
94
|
|
91
95
|
export enum StorageEvents {
|
@@ -94,12 +98,6 @@ export enum StorageEvents {
|
|
94
98
|
DATA_RETRIEVED='DataRetrieved',
|
95
99
|
}
|
96
100
|
|
97
|
-
export enum WhisperEvents {
|
98
|
-
NewPublicWhisperMessage='NewPublicWhisperMessage',
|
99
|
-
NewPrivateWhisperMessage='NewPrivateWhisperMessage',
|
100
|
-
ChatError='ChatError'
|
101
|
-
}
|
102
|
-
|
103
101
|
/* Providers */
|
104
102
|
|
105
103
|
export enum AuthenticationProviders {
|
@@ -7,6 +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 { processDisputeCreated } from "./processDisputeCreated";
|
10
11
|
/**
|
11
12
|
* Retrieves topics and process the approppriate log
|
12
13
|
* @param log
|
@@ -46,8 +47,6 @@ function processLogEvents(log) {
|
|
46
47
|
}
|
47
48
|
}
|
48
49
|
|
49
|
-
|
50
|
-
|
51
50
|
if (event != null) {
|
52
51
|
switch(event['name']) {
|
53
52
|
case "MarketCreated":
|
@@ -60,6 +59,8 @@ function processLogEvents(log) {
|
|
60
59
|
case "WorkRelationshipCreated":
|
61
60
|
processWorkRelationshipCreatedEvent(log);
|
62
61
|
break;
|
62
|
+
case "DisputeCreated":
|
63
|
+
processDisputeCreated(log)
|
63
64
|
default:
|
64
65
|
}
|
65
66
|
} else {
|
@@ -0,0 +1,42 @@
|
|
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 processDisputeCreated(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
|
+
|
27
|
+
const disputeData = {
|
28
|
+
employer,
|
29
|
+
worker,
|
30
|
+
relationship,
|
31
|
+
address: disputeAddress
|
32
|
+
}
|
33
|
+
|
34
|
+
console.log("Processing a dispute created event with address: " + disputeData)
|
35
|
+
|
36
|
+
opportunityEventEmitter.emit(ExchangeEvents.WorkRelationshipCreated, disputeData);
|
37
|
+
} catch(error) {
|
38
|
+
console.log(error)
|
39
|
+
}
|
40
|
+
}
|
41
|
+
|
42
|
+
export { processDisputeCreated };
|
package/src/sync/sync-markets.ts
CHANGED
@@ -6,7 +6,7 @@ import { processLog } from './process/process-log';
|
|
6
6
|
async function syncMarkets() {
|
7
7
|
//sync Markets
|
8
8
|
await opportunityService.getProviderInterface().getLogs({
|
9
|
-
address: addressMap[Contracts.MARKET_FACTORY],
|
9
|
+
address: addressMap[opportunityService.getEthNetwork()][Contracts.MARKET_FACTORY],
|
10
10
|
fromBlock: 1,
|
11
11
|
toBlock: 'latest'
|
12
12
|
}).then((logs) => {
|
@@ -0,0 +1,20 @@
|
|
1
|
+
|
2
|
+
|
3
|
+
import { ethers } from "dvote-js/node_modules/ethers"
|
4
|
+
import gwPool, { connectGateways } from "../src/api/voting/connect"
|
5
|
+
import { registerEntity } from '../src/api/voting/entity'
|
6
|
+
|
7
|
+
const ethNetworkId = 'rinkeby'
|
8
|
+
const environment = 'dev'
|
9
|
+
const bootnodesContentUri = "https://bootnodes.vocdoni.net/gateways.dev.json"
|
10
|
+
|
11
|
+
describe("Setting up a process", () => {
|
12
|
+
it("Should connect gateways", async () => {
|
13
|
+
expect(async () => await connectGateways(ethNetworkId, environment, bootnodesContentUri)).not.toThrow()
|
14
|
+
const pool = await connectGateways(ethNetworkId, environment, bootnodesContentUri)
|
15
|
+
console.log(pool)
|
16
|
+
const wallet = ethers.Wallet.createRandom().connect(pool['provider'])
|
17
|
+
const address = await wallet.getAddress()
|
18
|
+
expect(() => registerEntity(pool, wallet, address)).not.toThrow()
|
19
|
+
})
|
20
|
+
})
|
package/tsconfig.json
CHANGED
@@ -1,14 +1,16 @@
|
|
1
1
|
{
|
2
2
|
"compilerOptions": {
|
3
|
-
|
3
|
+
|
4
|
+
"moduleResolution": "node",
|
5
|
+
"resolveJsonModule": true,
|
4
6
|
"esModuleInterop": true,
|
5
7
|
"allowSyntheticDefaultImports": true,
|
6
8
|
"target": "es6",
|
7
9
|
"suppressImplicitAnyIndexErrors": true,
|
8
10
|
"noImplicitAny": false,
|
9
|
-
"resolveJsonModule": true,
|
10
|
-
"moduleResolution": "node",
|
11
11
|
"sourceMap": true,
|
12
|
+
"declaration": false,
|
13
|
+
"skipLibCheck": true,
|
12
14
|
"outDir": "./dist/",
|
13
15
|
"baseUrl": ".",
|
14
16
|
"paths": {
|
@@ -1 +0,0 @@
|
|
1
|
-
//# sourceMappingURL=ChatHttpServer.js.map
|
@@ -1 +0,0 @@
|
|
1
|
-
{"version":3,"file":"ChatHttpServer.js","sourceRoot":"","sources":["../../../src/modules/whisper/ChatHttpServer.ts"],"names":[],"mappings":""}
|
@@ -1 +0,0 @@
|
|
1
|
-
//# sourceMappingURL=ChatSocketServer.js.map
|
@@ -1 +0,0 @@
|
|
1
|
-
{"version":3,"file":"ChatSocketServer.js","sourceRoot":"","sources":["../../../src/modules/whisper/ChatSocketServer.ts"],"names":[],"mappings":""}
|
@@ -1,63 +0,0 @@
|
|
1
|
-
"use strict";
|
2
|
-
var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
|
3
|
-
function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
|
4
|
-
return new (P || (P = Promise))(function (resolve, reject) {
|
5
|
-
function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
|
6
|
-
function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
|
7
|
-
function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
|
8
|
-
step((generator = generator.apply(thisArg, _arguments || [])).next());
|
9
|
-
});
|
10
|
-
};
|
11
|
-
var __importDefault = (this && this.__importDefault) || function (mod) {
|
12
|
-
return (mod && mod.__esModule) ? mod : { "default": mod };
|
13
|
-
};
|
14
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
15
|
-
exports.opportunityChatProvider = void 0;
|
16
|
-
const OpportunityEventEmitter_1 = __importDefault(require("../../events/OpportunityEventEmitter"));
|
17
|
-
class OpportunityChatProvider {
|
18
|
-
init(chatHttpServer, chatSocketServer) {
|
19
|
-
return __awaiter(this, void 0, void 0, function* () {
|
20
|
-
this.ChatHttpServer = chatHttpServer;
|
21
|
-
this.ChatSocketServer = chatSocketServer;
|
22
|
-
try {
|
23
|
-
console.log('Initiating OpportunityChatProvider');
|
24
|
-
this.userId = yield this.ChatHttpServer.getUserId();
|
25
|
-
const response = yield this.ChatHttpServer.userSessionCheck(this.userId);
|
26
|
-
console.log('User ID received: ' + this.userId);
|
27
|
-
console.log('Response received: ' + response);
|
28
|
-
if (response.error) {
|
29
|
-
return { status: false, username: null };
|
30
|
-
//this.props.history.push(`/`)
|
31
|
-
}
|
32
|
-
else {
|
33
|
-
/* this.setState({
|
34
|
-
username: response.username
|
35
|
-
});*/
|
36
|
-
console.log('Successfully found username: ' + response.username);
|
37
|
-
console.log('Successfully found a userID: ' + this.userId);
|
38
|
-
this.ChatHttpServer.setLS('username', response.username);
|
39
|
-
this.ChatSocketServer.establishSocketConnection(this.userId);
|
40
|
-
return { status: true, username: response.username };
|
41
|
-
}
|
42
|
-
//this.setRenderLoadingState(false);
|
43
|
-
}
|
44
|
-
catch (error) {
|
45
|
-
return { status: false, username: null };
|
46
|
-
//this.setRenderLoadingState(false);
|
47
|
-
//this.props.history.push(`/`)
|
48
|
-
}
|
49
|
-
});
|
50
|
-
}
|
51
|
-
getChatList() {
|
52
|
-
return this.ChatSocketServer.getChatList(this.userId);
|
53
|
-
}
|
54
|
-
setChatListResponseListener(data) {
|
55
|
-
OpportunityEventEmitter_1.default.on('chat-list-response', data);
|
56
|
-
}
|
57
|
-
removeChatListResponseListener(data) {
|
58
|
-
OpportunityEventEmitter_1.default.removeListener('chat-list-response', data);
|
59
|
-
}
|
60
|
-
}
|
61
|
-
const opportunityChatProvider = new OpportunityChatProvider();
|
62
|
-
exports.opportunityChatProvider = opportunityChatProvider;
|
63
|
-
//# sourceMappingURL=OpportunityChatProvider.js.map
|
@@ -1 +0,0 @@
|
|
1
|
-
{"version":3,"file":"OpportunityChatProvider.js","sourceRoot":"","sources":["../../../src/modules/whisper/OpportunityChatProvider.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;AAEA,mGAA2E;AAK3E,MAAM,uBAAuB;IAKpB,IAAI,CAAC,cAAoB,EAAE,gBAAsB;;YACnD,IAAI,CAAC,cAAc,GAAG,cAAc,CAAC;YACrC,IAAI,CAAC,gBAAgB,GAAG,gBAAgB,CAAC;YAEzC,IAAI;gBACF,OAAO,CAAC,GAAG,CAAC,oCAAoC,CAAC,CAAC;gBACnD,IAAI,CAAC,MAAM,GAAG,MAAM,IAAI,CAAC,cAAc,CAAC,SAAS,EAAE,CAAC;gBACpD,MAAM,QAAQ,GAAG,MAAM,IAAI,CAAC,cAAc,CAAC,gBAAgB,CAAC,IAAI,CAAC,MAAM,CAAC,CAAA;gBAExE,OAAO,CAAC,GAAG,CAAC,oBAAoB,GAAG,IAAI,CAAC,MAAM,CAAC,CAAC;gBAChD,OAAO,CAAC,GAAG,CAAC,qBAAqB,GAAG,QAAQ,CAAC,CAAC;gBAE9C,IAAI,QAAQ,CAAC,KAAK,EAAE;oBAChB,OAAO,EAAE,MAAM,EAAE,KAAK,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAA;oBACxC,8BAA8B;iBAC/B;qBAAM;oBACN;;0BAEM;oBACL,OAAO,CAAC,GAAG,CAAC,+BAA+B,GAAG,QAAQ,CAAC,QAAQ,CAAC,CAAA;oBAChE,OAAO,CAAC,GAAG,CAAC,+BAA+B,GAAG,IAAI,CAAC,MAAM,CAAC,CAAC;oBAC3D,IAAI,CAAC,cAAc,CAAC,KAAK,CAAC,UAAU,EAAE,QAAQ,CAAC,QAAQ,CAAC,CAAC;oBACzD,IAAI,CAAC,gBAAgB,CAAC,yBAAyB,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;oBAC7D,OAAO,EAAE,MAAM,EAAE,IAAI,EAAE,QAAQ,EAAE,QAAQ,CAAC,QAAQ,EAAE,CAAA;iBACrD;gBACD,oCAAoC;aACrC;YAAC,OAAO,KAAK,EAAE;gBACZ,OAAO,EAAE,MAAM,EAAE,KAAK,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAA;gBAC1C,oCAAoC;gBACpC,8BAA8B;aAC/B;QACN,CAAC;KAAA;IAED,WAAW;QACV,OAAO,IAAI,CAAC,gBAAgB,CAAC,WAAW,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;IACvD,CAAC;IAED,2BAA2B,CAAC,IAAI;QAC9B,iCAAuB,CAAC,EAAE,CAAC,oBAAoB,EAAE,IAAI,CAAC,CAAC;IACzD,CAAC;IAED,8BAA8B,CAAC,IAAI;QAClC,iCAAuB,CAAC,cAAc,CAAC,oBAAoB,EAAE,IAAI,CAAC,CAAC;IACpE,CAAC;CACH;AAED,MAAM,uBAAuB,GAAG,IAAI,uBAAuB,EAAE,CAAC;AACrD,0DAAuB"}
|
package/dist/rpc/connection.js
DELETED
@@ -1 +0,0 @@
|
|
1
|
-
//# sourceMappingURL=connection.js.map
|
@@ -1 +0,0 @@
|
|
1
|
-
{"version":3,"file":"connection.js","sourceRoot":"","sources":["../../src/rpc/connection.ts"],"names":[],"mappings":""}
|
package/dist/rpc/index.js
DELETED
@@ -1 +0,0 @@
|
|
1
|
-
//# sourceMappingURL=index.js.map
|
package/dist/rpc/index.js.map
DELETED
@@ -1 +0,0 @@
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/rpc/index.ts"],"names":[],"mappings":""}
|
@@ -1 +0,0 @@
|
|
1
|
-
{"version":3,"file":"rpc-interface.js","sourceRoot":"","sources":["../../../src/rpc/interface/rpc-interface.ts"],"names":[],"mappings":";;AAAA,mCAAgC;AAChC,kBAAe,eAAM,CAAC"}
|
@@ -1,60 +0,0 @@
|
|
1
|
-
import EventEmitter from 'node:events';
|
2
|
-
import opportunityService from '../../OpportunityService';
|
3
|
-
import opportunityEventEmitter from '../../events/OpportunityEventEmitter';
|
4
|
-
import { IHashMap } from '../../types';
|
5
|
-
import { WhisperEvents } from '../..//constants';
|
6
|
-
import { utils } from 'ethers';
|
7
|
-
|
8
|
-
class OpportunityChatProvider {
|
9
|
-
userId : string;
|
10
|
-
ChatHttpServer : any;
|
11
|
-
ChatSocketServer: any;
|
12
|
-
|
13
|
-
async init(chatHttpServer : any, chatSocketServer : any) : Promise<Object> {
|
14
|
-
this.ChatHttpServer = chatHttpServer;
|
15
|
-
this.ChatSocketServer = chatSocketServer;
|
16
|
-
|
17
|
-
try {
|
18
|
-
console.log('Initiating OpportunityChatProvider');
|
19
|
-
this.userId = await this.ChatHttpServer.getUserId();
|
20
|
-
const response = await this.ChatHttpServer.userSessionCheck(this.userId)
|
21
|
-
|
22
|
-
console.log('User ID received: ' + this.userId);
|
23
|
-
console.log('Response received: ' + response);
|
24
|
-
|
25
|
-
if (response.error) {
|
26
|
-
return { status: false, username: null }
|
27
|
-
//this.props.history.push(`/`)
|
28
|
-
} else {
|
29
|
-
/* this.setState({
|
30
|
-
username: response.username
|
31
|
-
});*/
|
32
|
-
console.log('Successfully found username: ' + response.username)
|
33
|
-
console.log('Successfully found a userID: ' + this.userId);
|
34
|
-
this.ChatHttpServer.setLS('username', response.username);
|
35
|
-
this.ChatSocketServer.establishSocketConnection(this.userId);
|
36
|
-
return { status: true, username: response.username }
|
37
|
-
}
|
38
|
-
//this.setRenderLoadingState(false);
|
39
|
-
} catch (error) {
|
40
|
-
return { status: false, username: null }
|
41
|
-
//this.setRenderLoadingState(false);
|
42
|
-
//this.props.history.push(`/`)
|
43
|
-
}
|
44
|
-
}
|
45
|
-
|
46
|
-
getChatList() {
|
47
|
-
return this.ChatSocketServer.getChatList(this.userId);
|
48
|
-
}
|
49
|
-
|
50
|
-
setChatListResponseListener(data) {
|
51
|
-
opportunityEventEmitter.on('chat-list-response', data);
|
52
|
-
}
|
53
|
-
|
54
|
-
removeChatListResponseListener(data) {
|
55
|
-
opportunityEventEmitter.removeListener('chat-list-response', data);
|
56
|
-
}
|
57
|
-
}
|
58
|
-
|
59
|
-
const opportunityChatProvider = new OpportunityChatProvider();
|
60
|
-
export { opportunityChatProvider };
|
package/src/rpc/connection.ts
DELETED
File without changes
|
package/src/rpc/index.ts
DELETED
File without changes
|