opportunity-service 0.0.535 → 0.0.540
Sign up to get free protection for your applications and to get access to all the features.
- package/dist/OpportunityService.js +16 -20
- package/dist/OpportunityService.js.map +1 -1
- package/dist/api/dispute/check-vote-results.js +33 -0
- package/dist/api/dispute/check-vote-results.js.map +1 -0
- package/dist/api/dispute/connect.js +39 -0
- package/dist/api/dispute/connect.js.map +1 -0
- package/dist/api/dispute/ensure-entity-metadata.js +39 -0
- package/dist/api/dispute/ensure-entity-metadata.js.map +1 -0
- package/dist/api/dispute/launch-new-vote.js +94 -0
- package/dist/api/dispute/launch-new-vote.js.map +1 -0
- package/dist/api/dispute/submit-vote.js +41 -0
- package/dist/api/dispute/submit-vote.js.map +1 -0
- package/dist/api/dispute/util/wait-until-present.js +27 -0
- package/dist/api/dispute/util/wait-until-present.js.map +1 -0
- package/dist/api/{voting/connect.js → dispute/util/wait-until-started.js} +11 -21
- package/dist/api/dispute/util/wait-until-started.js.map +1 -0
- package/dist/api/exchange/create-dispute.js +1 -2
- package/dist/api/exchange/create-dispute.js.map +1 -1
- package/dist/api/exchange/create-task.js +1 -1
- package/dist/api/exchange/create-task.js.map +1 -1
- package/dist/api/identity/register-new-user.js +1 -1
- package/dist/api/identity/register-new-user.js.map +1 -1
- package/dist/api/index.js +31 -2
- package/dist/api/index.js.map +1 -1
- package/dist/api/internal/abis.js +2 -1
- package/dist/api/internal/abis.js.map +1 -1
- package/dist/api/internal/addresses.js +21 -4
- package/dist/api/internal/addresses.js.map +1 -1
- package/dist/api/other/create-eth-crypto-creds.js +20 -0
- package/dist/api/other/create-eth-crypto-creds.js.map +1 -0
- package/dist/api/provider/decrypt.js +18 -0
- package/dist/api/provider/decrypt.js.map +1 -0
- package/dist/api/provider/encrypt.js +18 -0
- package/dist/api/provider/encrypt.js.map +1 -0
- package/dist/api/util/encrypt-by-public-key.js +52 -0
- package/dist/api/util/encrypt-by-public-key.js.map +1 -0
- package/dist/api/util/parse-cipher.js +11 -0
- package/dist/api/util/parse-cipher.js.map +1 -0
- package/dist/api/util/stringify-cipher.js +5 -0
- package/dist/api/util/stringify-cipher.js.map +1 -0
- package/dist/blockchain/abi.json +779 -1
- package/dist/blockchain/addresses.json +15 -5
- package/dist/blockchain/bytecode.json +2 -2
- package/dist/constants.js +0 -1
- package/dist/constants.js.map +1 -1
- package/dist/modules/storage/OpportunityStorageProvider.js +71 -41
- package/dist/modules/storage/OpportunityStorageProvider.js.map +1 -1
- package/dist/sync/sync-markets.js +1 -1
- package/dist/sync/sync-markets.js.map +1 -1
- package/package.json +13 -2
- package/src/OpportunityService.ts +22 -24
- package/src/api/dispute/check-vote-results.ts +30 -0
- package/src/api/dispute/connect.ts +36 -0
- package/src/api/dispute/ensure-entity-metadata.ts +34 -0
- package/src/api/dispute/launch-new-vote.ts +116 -0
- package/src/api/dispute/submit-vote.ts +59 -0
- package/src/api/dispute/util/wait-until-present.ts +19 -0
- package/src/api/dispute/util/wait-until-started.ts +14 -0
- package/src/api/exchange/create-dispute.ts +1 -1
- package/src/api/exchange/create-task.ts +1 -1
- package/src/api/identity/register-new-user.ts +3 -1
- package/src/api/index.ts +31 -2
- package/src/api/internal/abis.ts +2 -1
- package/src/api/internal/addresses.ts +21 -4
- package/src/api/other/create-eth-crypto-creds.ts +14 -0
- package/src/api/provider/decrypt.ts +9 -0
- package/src/api/provider/encrypt.ts +9 -0
- package/src/api/util/encrypt-by-public-key.ts +47 -0
- package/src/api/util/parse-cipher.ts +11 -0
- package/src/api/util/stringify-cipher.ts +5 -0
- package/src/blockchain/abi.json +779 -1
- package/src/blockchain/addresses.json +17 -5
- package/src/blockchain/bytecode.json +2 -2
- package/src/constants.ts +0 -1
- package/src/modules/storage/OpportunityStorageProvider.ts +80 -23
- package/src/sync/sync-markets.ts +1 -1
- package/src/types.ts +21 -1
- package/dist/api/voting/census.js +0 -38
- package/dist/api/voting/census.js.map +0 -1
- package/dist/api/voting/connect.js.map +0 -1
- package/dist/api/voting/entity.js +0 -39
- package/dist/api/voting/entity.js.map +0 -1
- package/dist/api/voting/process.js +0 -101
- package/dist/api/voting/process.js.map +0 -1
- package/src/api/voting/census.ts +0 -39
- package/src/api/voting/connect.ts +0 -34
- package/src/api/voting/entity.ts +0 -33
- package/src/api/voting/process.ts +0 -119
@@ -1,7 +1,17 @@
|
|
1
1
|
{
|
2
|
-
"
|
3
|
-
|
4
|
-
|
5
|
-
|
6
|
-
|
2
|
+
"rinkeby": {
|
3
|
+
"MarketFactory": "0x72141925d0Cd8bC72Bea3A555976335341B1e7BF",
|
4
|
+
"UserRegistration": "0xb2359b2B2F4795b9AEd240d0e9606897BfEBB348",
|
5
|
+
"UserSummaryFactory": "0x95bFe6b12b89EBb87D6f2B854f2055Fc867Dbd50",
|
6
|
+
"Dai": "0x5592ec0cfb4dbc12d3ab100b257153436a1f0fea",
|
7
|
+
"Participation": "0xE4c3a2698e5e4F8BE58481eB923ADA73982BD94d"
|
8
|
+
},
|
9
|
+
"mainnet": {
|
10
|
+
"MarketFactory": "0x8eb065482F681537e90eab826540E9DF8D8cBd89",
|
11
|
+
"UserRegistration": "0xc4F1B570e57A5035a25035AFA5f7CbA204627024",
|
12
|
+
"UserSummaryFactory": "",
|
13
|
+
"Dai": "0x6b175474e89094c44da98b954eedeac495271d0f",
|
14
|
+
"Tip": "0x"
|
15
|
+
},
|
16
|
+
"xdai": {}
|
7
17
|
}
|
@@ -1,4 +1,4 @@
|
|
1
1
|
{
|
2
|
-
"
|
3
|
-
"Scheduler": ""
|
2
|
+
"Dispute": "0x608060405234801561001057600080fd5b50600436106100f55760003560e01c80638e93d1d511610097578063d8025a8011610066578063d8025a801461027b578063eeabb1251461028e578063fc0e3d90146102a1578063ffe1ee9d146102a957600080fd5b80638e93d1d51461019e57806391b0d39a1461023a578063a3bef4d714610243578063a6430cc01461025057600080fd5b80633a4b66f1116100d35780633a4b66f11461015c5780634a60e34f1461016557806377e8fd9c1461016f5780637e291d851461017757600080fd5b80630b97bc86146100fa578063146ca531146101345780631712546614610153575b600080fd5b6101217f000000000000000000000000000000000000000000000000000000000000000081565b6040519081526020015b60405180910390f35b6003546101419060ff1681565b60405160ff909116815260200161012b565b61012160065481565b61012160025481565b61016d6102d0565b005b61016d61037e565b6101217f000000000000000000000000000000000000000000000000000000000000000081565b6101f76101ac366004610bfc565b6000602081905290815260409020805460018201546002909201546001600160a01b03909116919067ffffffffffffffff81169060ff600160401b8204811691600160481b90041685565b604080516001600160a01b039096168652602086019490945267ffffffffffffffff9092169284019290925290151560608301521515608082015260a00161012b565b61012160045481565b6005546101419060ff1681565b61026361025e366004610d24565b6103b7565b6040516001600160a01b03909116815260200161012b565b610121610289366004610cee565b6103e1565b61016d61029c366004610c3d565b610890565b61016d610b1d565b6101217f000000000000000000000000000000000000000000000000000000000000000081565b6004546102e09062093a80610e06565b600454141561037c5761037c600880546102f990610e43565b80601f016020809104026020016040519081016040528092919081815260200182805461032590610e43565b80156103725780601f1061034757610100808354040283529160200191610372565b820191906000526020600020905b81548152906001019060200180831161035557829003601f168201915b5050505050610b36565b565b60095460009060ff16600381111561039857610398610e8e565b8160038111156103aa576103aa610e8e565b146103b457600080fd5b50565b600181815481106103c757600080fd5b6000918252602090912001546001600160a01b0316905081565b600954600090819060ff1660038111156103fd576103fd610e8e565b81600381111561040f5761040f610e8e565b1461041957600080fd5b60015460051161042857600080fd5b60075460408051632fe4c87f60e21b815290516001600160a01b0390921691600091839163bf9321fc9160048082019260209290919082900301818787803b15801561047357600080fd5b505af1158015610487573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906104ab9190610c20565b9050806001600160a01b0316638fcbaf0c836001600160a01b0316638da5cb5b6040518163ffffffff1660e01b815260040160206040518083038186803b1580156104f557600080fd5b505afa158015610509573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061052d9190610c20565b30893560208b0135600161054760608e0160408f01610d3d565b8d606001358e608001356040518963ffffffff1660e01b8152600401610574989796959493929190610d60565b600060405180830381600087803b15801561058e57600080fd5b505af11580156105a2573d6000803e3d6000fd5b50505050806001600160a01b031663f2d5d56b836001600160a01b0316638da5cb5b6040518163ffffffff1660e01b815260040160206040518083038186803b1580156105ee57600080fd5b505afa158015610602573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906106269190610c20565b6002546040516001600160e01b031960e085901b1681526001600160a01b0390921660048301526024820152604401600060405180830381600087803b15801561066f57600080fd5b505af1158015610683573d6000803e3d6000fd5b50505050806001600160a01b0316638fcbaf0c836001600160a01b0316638da5cb5b6040518163ffffffff1660e01b815260040160206040518083038186803b1580156106cf57600080fd5b505afa1580156106e3573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906107079190610c20565b306107148a356001610e06565b60208a0135600061072b60608d0160408e01610d3d565b8c606001358d608001356040518963ffffffff1660e01b8152600401610758989796959493929190610d60565b600060405180830381600087803b15801561077257600080fd5b505af1158015610786573d6000803e3d6000fd5b5050505061087e336040805160a0810182526000808252602080830182815283850183815260608501848152608086018581526001600160a01b03988916808752948690529685209551865498166001600160a01b03199889161786559151600186810191909155905160029095018054925196511515600160481b0269ff00000000000000000019971515600160401b0268ffffffffffffffffff1990941667ffffffffffffffff9790971696909617929092179590951693909317909255825480840184559290527fb10e2d527612073b26eecdfd717e6a320cf44b4afac2b0732d9fcbe2b7fa0cf69091018054909216179055565b610886610bc5565b5050505092915050565b60095460019060ff1660038111156108aa576108aa610e8e565b8160038111156108bc576108bc610e8e565b146108c657600080fd5b60035460ff166001141561096f57336001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016146109625760405162461bcd60e51b815260206004820152602860248201527f54686520616767726573736f72206d757374207375626d6974207468652070726044820152671bd8d95cdcc81a5960c21b60648201526084015b60405180910390fd5b61096b82610b36565b5050565b60045461097f9062093a80610e06565b4210610989575050565b60075460408051638da5cb5b60e01b815290516001600160a01b03909216918291638da5cb5b916004808301926020929190829003018186803b1580156109cf57600080fd5b505afa1580156109e3573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610a079190610c20565b6001600160a01b0316336001600160a01b03161480610aa75750806001600160a01b0316634d547ada6040518163ffffffff1660e01b815260040160206040518083038186803b158015610a5a57600080fd5b505afa158015610a6e573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610a929190610c20565b6001600160a01b0316336001600160a01b0316145b610b0f5760405162461bcd60e51b815260206004820152603360248201527f5468652070726f63657373206964206d75737420636f6d652066726f6d206f6e604482015272329037b3103a3432903234b9b83aba32b9399760691b6064820152608401610959565b610b1883610b36565b505050565b60095460039060ff168181111561039857610398610e8e565b6009805460ff1916905560405130907f46fc1bd3ab8e7cd05a86c7dcc134023832df6d2dc518df189e63b27c386673ad90600090a2600354610b7c9060ff166001610e1e565b60ff16306001600160a01b03167f21f2e1db10f4df2a0f1fc876844286ccb4dde456aeaf56b34084fe757c10192f8342604051610bba929190610da9565b60405180910390a350565b60015460009060051415610be1576009805460ff191660021790555b90565b600060a08284031215610bf657600080fd5b50919050565b600060208284031215610c0e57600080fd5b8135610c1981610eba565b9392505050565b600060208284031215610c3257600080fd5b8151610c1981610eba565b600060208284031215610c4f57600080fd5b813567ffffffffffffffff80821115610c6757600080fd5b818401915084601f830112610c7b57600080fd5b813581811115610c8d57610c8d610ea4565b604051601f8201601f19908116603f01168101908382118183101715610cb557610cb5610ea4565b81604052828152876020848701011115610cce57600080fd5b826020860160208301376000928101602001929092525095945050505050565b6000806101408385031215610d0257600080fd5b610d0c8484610be4565b9150610d1b8460a08501610be4565b90509250929050565b600060208284031215610d3657600080fd5b5035919050565b600060208284031215610d4f57600080fd5b813560ff81168114610c1957600080fd5b6001600160a01b039889168152969097166020870152604086019490945260608501929092521515608084015260ff1660a083015260c082015260e08101919091526101000190565b604081526000835180604084015260005b81811015610dd75760208187018101516060868401015201610dba565b81811115610de9576000606083860101525b50602083019390935250601f91909101601f191601606001919050565b60008219821115610e1957610e19610e78565b500190565b600060ff821660ff84168060ff03821115610e3b57610e3b610e78565b019392505050565b600181811c90821680610e5757607f821691505b60208210811415610bf657634e487b7160e01b600052602260045260246000fd5b634e487b7160e01b600052601160045260246000fd5b634e487b7160e01b600052602160045260246000fd5b634e487b7160e01b600052604160045260246000fd5b6001600160a01b03811681146103b457600080fdfea2646970667358221220e36760deb035eff2130e8ab72946509dd52d437feb2fb887714059c90eaa82e764736f6c63430008070033",
|
3
|
+
"WorkRelationship": "0x608060405234801561001057600080fd5b506004361061018e5760003560e01c80637f755043116100de578063bfce14ea11610097578063ec3a479011610071578063ec3a4790146103c5578063ed8454fb146103d8578063f240f7c3146103eb578063f2a09497146103fe57600080fd5b8063bfce14ea14610363578063c6ee20d21461038a578063cb2ef6f7146103a457600080fd5b80637f755043146102e257806385209ee0146102f55780638da5cb5b146103075780639240a1001461031a57806396118e4414610334578063bf9321fc1461035b57600080fd5b80634d547ada1161014b57806353318a871161012557806353318a871461029b5780635db28c66146102ae57806363c852c9146102b65780637df38c5b146102d957600080fd5b80634d547ada146102365780634e12aa961461026157806350365be91461028857600080fd5b80630b73a87f14610193578063188bbbf3146101a85780631ed4b49e146101d157806331613fdb146101e657806339987e52146101ee5780633c86f6f314610201575b600080fd5b6101a66101a13660046117bf565b610406565b005b6007546101bb9062010000900460ff1681565b6040516101c89190611b80565b60405180910390f35b6101d96104ef565b6040516101c89190611bbb565b6101a661057d565b6101a66101fc366004611a99565b6106a4565b6102287ffa5e0016fb62b8dffda8fd95249d438edcffd3689b40ac3b4281d4cf710609ae81565b6040519081526020016101c8565b600054610249906001600160a01b031681565b6040516001600160a01b0390911681526020016101c8565b6102287fc35792dec8ea736e1a3478771b1f14a7472fd98ca01a9c9077ac63917f87f64981565b6101a6610296366004611961565b6107d5565b6101a66102a93660046119a7565b6108fe565b610228610a2c565b6102c96102c43660046118a9565b610a8a565b60405190151581526020016101c8565b61022860025481565b6101a66102f03660046117e3565b610b33565b6007546101bb90610100900460ff1681565b600154610249906001600160a01b031681565b610322600681565b60405160ff90911681526020016101c8565b6102287f62b607caa4d4e7fcbd31bf4c033cd30888b536567fadc83710fdf15f8d5cfc9e81565b610249610deb565b6102287f000000000000000000000000000000000000000000000000000000000000000081565b6007546103979060ff1681565b6040516101c89190611b93565b6007546103b8906301000000900460ff1681565b6040516101c89190611ba7565b6101a66103d33660046119cf565b610e56565b6101a66103e6366004611874565b610ed0565b600454610249906001600160a01b031681565b610322600481565b600754339060ff16600581111561041f5761041f611ec6565b600514801561043b57506004546001600160a01b038281169116145b6104605760405162461bcd60e51b815260040161045790611dd0565b60405180910390fd5b60035460025460405163a9059cbb60e01b81526001600160a01b038581166004830152602482019290925291169063a9059cbb906044015b602060405180830381600087803b1580156104b257600080fd5b505af11580156104c6573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906104ea9190611944565b505050565b600580546104fc90611e75565b80601f016020809104026020016040519081016040528092919081815260200182805461052890611e75565b80156105755780601f1061054a57610100808354040283529160200191610575565b820191906000526020600020905b81548152906001019060200180831161055857829003601f168201915b505050505081565b600754339060ff16600581111561059657610596611ec6565b60051480156105b257506004546001600160a01b038281169116145b6105ce5760405162461bcd60e51b815260040161045790611dd0565b6000600280546105de9190611e53565b60035460015460405163a9059cbb60e01b81526001600160a01b03918216600482015260248101849052929350169063a9059cbb90604401602060405180830381600087803b15801561063057600080fd5b505af1158015610644573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906106689190611944565b5060035460005460405163a9059cbb60e01b81526001600160a01b0391821660048201526024810184905291169063a9059cbb90604401610498565b6001546001600160a01b031633146106ce5760405162461bcd60e51b815260040161045790611c10565b60038060075460ff1660058111156106e8576106e8611ec6565b146107055760405162461bcd60e51b815260040161045790611c93565b604080517ffa5e0016fb62b8dffda8fd95249d438edcffd3689b40ac3b4281d4cf710609ae602080830191909152871580158385015283518084038501815260608401855280519083012061190160f01b60808501527f0000000000000000000000000000000000000000000000000000000000000000608285015260a2808501919091528451808503909101815260c29093019093528151910120906107b5576107b08789610f1a565b6107cb565b600780546002919060ff19166001835b02179055505b5050505050505050565b6000546001600160a01b031633146107ff5760405162461bcd60e51b815260040161045790611c63565b600180600754610100900460ff16600281111561081e5761081e611ec6565b1461083b5760405162461bcd60e51b815260040161045790611d67565b60018060075460ff16600581111561085557610855611ec6565b146108725760405162461bcd60e51b815260040161045790611c93565b60018060075462010000900460ff16600281111561089257610892611ec6565b146108af5760405162461bcd60e51b815260040161045790611cfd565b600187151514156108d0576007805462ff00ff1916620200021790556108f5565b600080546001600160a01b03191690556108e8610f76565b6007805462ff00ff191690555b50505050505050565b6000546001600160a01b031633146109285760405162461bcd60e51b815260040161045790611c63565b60028060075460ff16600581111561094257610942611ec6565b1461095f5760405162461bcd60e51b815260040161045790611c93565b604080517f62b607caa4d4e7fcbd31bf4c033cd30888b536567fadc83710fdf15f8d5cfc9e60208083019190915281830188905282518083038401815260608301845280519082012061190160f01b60808401527f0000000000000000000000000000000000000000000000000000000000000000608284015260a2808401919091528351808403909101815260c290920190925280519101206000546001600160a01b0316610a0e57600080fd5b610a1786600655565b50506007805460ff1916600317905550505050565b6001546000906001600160a01b03163314610a595760405162461bcd60e51b815260040161045790611c10565b6000546001600160a01b03163314610a835760405162461bcd60e51b815260040161045790611c63565b5060065490565b6040805160016232dea960e11b0319815283516001600160a01b03908116600483015260208501516024830152918401516044820152828216606482015260009182919086169063ff9a42ae9060840160206040518083038186803b158015610af257600080fd5b505afa158015610b06573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610b2a9190611944565b95945050505050565b6001546001600160a01b03163314610b5d5760405162461bcd60e51b815260040161045790611c10565b600080600754610100900460ff166002811115610b7c57610b7c611ec6565b14610b995760405162461bcd60e51b815260040161045790611d67565b60008060075460ff166005811115610bb357610bb3611ec6565b14610bd05760405162461bcd60e51b815260040161045790611c93565b6001600160a01b038c16610c4c5760405162461bcd60e51b815260206004820152603760248201527f576f726b65722061646472657373206d757374206e6f7420626520302077686560448201527f6e2061737369676e696e67206e657720776f726b65722e0000000000000000006064820152608401610457565b8a610c995760405162461bcd60e51b815260206004820181905260248201527f44616920616d6f756e742063616e6e6f7420626520657175616c20746f20302e6044820152606401610457565b6003546001546040516370a0823160e01b81526001600160a01b03918216600482015260009291909116906370a082319060240160206040518083038186803b158015610ce557600080fd5b505afa158015610cf9573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610d1d9190611a80565b90508b811015610d2c57600080fd5b610d3c8b8b8b8b8b8b8b8b6110b8565b60028c9055600080546001600160a01b038f166001600160a01b031991821617909155600480549091169055600780546001919062ff0000191662010000830217905550600780546001919060ff1916828002179055506000546001600160a01b038e8116911614610db057610db0611eb0565b600160075462010000900460ff166002811115610dcf57610dcf611ec6565b14610ddc57610ddc611eb0565b50505050505050505050505050565b6003546000906001600160a01b0316610e465760405162461bcd60e51b815260206004820152601a60248201527f52657761726420616464726573732063616e6e6f7420626520300000000000006044820152606401610457565b506003546001600160a01b031690565b6001546001600160a01b03163314610e805760405162461bcd60e51b815260040161045790611c10565b60008060075462010000900460ff166002811115610ea057610ea0611ec6565b14610ebd5760405162461bcd60e51b815260040161045790611cfd565b81516104ea906005906020850190611726565b60028060075460ff166005811115610eea57610eea611ec6565b14610f075760405162461bcd60e51b815260040161045790611c93565b50506007805460ff191660051790555050565b6001546001600160a01b03163314610f445760405162461bcd60e51b815260040161045790611c10565b6000546001600160a01b0316610f5957600080fd5b610f638282611235565b50506007805461ffff1916610204179055565b6000546001600160a01b03163314610fa05760405162461bcd60e51b815260040161045790611c63565b60018060075462010000900460ff166002811115610fc057610fc0611ec6565b14610fdd5760405162461bcd60e51b815260040161045790611cfd565b60018060075460ff166005811115610ff757610ff7611ec6565b146110145760405162461bcd60e51b815260040161045790611c93565b6002546110795760405162461bcd60e51b815260206004820152602d60248201527f5468657265206973206e6f2044414920746f207472616e73666572206261636b60448201526c103a37903a34329037bbb732b960991b6064820152608401610457565b60035460015460025460405163a9059cbb60e01b81526001600160a01b039283166004820152602481019190915291169063a9059cbb90604401610498565b600354600180546040516323f2ebc360e21b81526001600160a01b0393841693638fcbaf0c936110fb939091169130918e918e91908e908e908e90600401611b1b565b600060405180830381600087803b15801561111557600080fd5b505af1158015611129573d6000803e3d6000fd5b505060035460015460025460405163f2d5d56b60e01b81526001600160a01b03928316600482015260248101919091529116925063f2d5d56b9150604401600060405180830381600087803b15801561118157600080fd5b505af1158015611195573d6000803e3d6000fd5b5050600354600180546001600160a01b039283169450638fcbaf0c93509091169030906111c3908d90611e2d565b8b60008989896040518963ffffffff1660e01b81526004016111ec989796959493929190611b1b565b600060405180830381600087803b15801561120657600080fd5b505af115801561121a573d6000803e3d6000fd5b5050600780546001935090915061ff001916610100836107c5565b60035460005460025460405163a9059cbb60e01b81526001600160a01b039283166004820152602481019190915291169063a9059cbb90604401602060405180830381600087803b15801561128957600080fd5b505af115801561129d573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906112c19190611944565b50600154600080546001600160a01b03928316921690600660ff86161115611349576040516376267fd760e11b81526001600160a01b0383169063ec4cffae90611312903090600190600401611b64565b600060405180830381600087803b15801561132c57600080fd5b505af1158015611340573d6000803e3d6000fd5b505050506116c6565b600660ff86161115806113605750600460ff861610155b1561136a576116c6565b600460ff86161180159061138b5750611384846001611e2d565b8160ff1610155b15611649576000826001600160a01b031663c897d6956040518163ffffffff1660e01b8152600401602060405180830381600087803b1580156113cd57600080fd5b505af11580156113e1573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906114059190611afe565b905060018160ff161161147857604051630668e3b760e41b81526001600160a01b0384169063668e3b7090611441903090600190600401611b64565b600060405180830381600087803b15801561145b57600080fd5b505af115801561146f573d6000803e3d6000fd5b50505050611643565b8060ff16600214156114ed57604051630668e3b760e41b81526000906001600160a01b0385169063668e3b70906114b59030908590600401611b64565b600060405180830381600087803b1580156114cf57600080fd5b505af11580156114e3573d6000803e3d6000fd5b5050505050611643565b8060ff166003141561158757604051630668e3b760e41b81526001600160a01b0384169063668e3b7090611528903090600090600401611b64565b600060405180830381600087803b15801561154257600080fd5b505af1158015611556573d6000803e3d6000fd5b50506040516332053e6960e01b8152600060048201526001600160a01b03861692506332053e699150602401611441565b6040516332053e6960e01b8152600160048201526001600160a01b038416906332053e6990602401600060405180830381600087803b1580156115c957600080fd5b505af11580156115dd573d6000803e3d6000fd5b5050604051630668e3b760e41b81526001600160a01b038616925063668e3b709150611610903090600190600401611b64565b600060405180830381600087803b15801561162a57600080fd5b505af115801561163e573d6000803e3d6000fd5b505050505b506116c6565b600460ff86161180159061165f5750838160ff16105b156116c657604051630668e3b760e41b81526001600160a01b0383169063668e3b7090611693903090600190600401611b64565b600060405180830381600087803b1580156116ad57600080fd5b505af11580156116c1573d6000803e3d6000fd5b505050505b604051633336dad960e21b81523060048201526001600160a01b0384169063ccdb6b6490602401600060405180830381600087803b15801561170757600080fd5b505af115801561171b573d6000803e3d6000fd5b505050505050505050565b82805461173290611e75565b90600052602060002090601f016020900481019282611754576000855561179a565b82601f1061176d57805160ff191683800117855561179a565b8280016001018555821561179a579182015b8281111561179a57825182559160200191906001019061177f565b506117a69291506117aa565b5090565b5b808211156117a657600081556001016117ab565b6000602082840312156117d157600080fd5b81356117dc81611f05565b9392505050565b6000806000806000806000806000806101408b8d03121561180357600080fd5b8a3561180e81611f05565b995060208b0135985060408b0135975060608b0135965060808b013561183381611f28565b955060a08b0135945060c08b0135935060e08b013561185181611f28565b809350506101008b013591506101208b013590509295989b9194979a5092959850565b60008060006060848603121561188957600080fd5b833561189481611f05565b95602085013595506040909401359392505050565b600080600083850360a08112156118bf57600080fd5b84356118ca81611f05565b93506060601f19820112156118de57600080fd5b506040516060810181811067ffffffffffffffff8211171561190257611902611edc565b604052602085013561191381611f05565b815260408581013560208301526060860135908201529150608084013561193981611f05565b809150509250925092565b60006020828403121561195657600080fd5b81516117dc81611f1a565b6000806000806080858703121561197757600080fd5b843561198281611f1a565b9350602085013561199281611f28565b93969395505050506040820135916060013590565b600080600080608085870312156119bd57600080fd5b84359350602085013561199281611f28565b6000602082840312156119e157600080fd5b813567ffffffffffffffff808211156119f957600080fd5b818401915084601f830112611a0d57600080fd5b813581811115611a1f57611a1f611edc565b604051601f8201601f19908116603f01168101908382118183101715611a4757611a47611edc565b81604052828152876020848701011115611a6057600080fd5b826020860160208301376000928101602001929092525095945050505050565b600060208284031215611a9257600080fd5b5051919050565b60008060008060008060c08789031215611ab257600080fd5b863595506020870135611ac481611f28565b94506040870135611ad481611f1a565b93506060870135611ae481611f28565b9598949750929560808101359460a0909101359350915050565b600060208284031215611b1057600080fd5b81516117dc81611f28565b6001600160a01b039889168152969097166020870152604086019490945260608501929092521515608084015260ff1660a083015260c082015260e08101919091526101000190565b6001600160a01b0392909216825260ff16602082015260400190565b60208101611b8d83611ef2565b91905290565b6020810160068310611b8d57611b8d611ec6565b6020810160028310611b8d57611b8d611ec6565b600060208083528351808285015260005b81811015611be857858101830151858201604001528201611bcc565b81811115611bfa576000604083870101525b50601f01601f1916929092016040019392505050565b60208082526033908201527f576f726b52656c6174696f6e736869703a206f6e6c794f776e65722063616e2060408201527231b0b636103a3434b990333ab731ba34b7b71760691b606082015260800190565b602080825260169082015275576f726b52656c6174696f6e736869703a206f6e6c7960501b604082015260600190565b60208082526044908201527f5468697320616374696f6e2063616e6e6f742062652063617272696564206f7560408201527f7420756e646572207468652063757272656e7420636f6e7472616374207374616060820152633a3ab99760e11b608082015260a00190565b60208082526044908201527f43616e6e6f7420696e766f6b65207468697320657363726f772066756e63746960408201527f6f6e2077697468207468652063757272656e7420636f6e7472616374207374616060820152633a3ab99760e11b608082015260a00190565b60208082526043908201527f43616e6e6f7420696e766f6b65207468697320657363726f772066756e63746960408201527f6f6e2077697468207468652063757272656e7420636f6e7472616374207374616060820152623a329760e91b608082015260a00190565b60208082526037908201527f54686520636f6e74726163742063616e6e6f74206265207265736f6c7665642060408201527f756e64657220746865736520636f6e646974696f6e732e000000000000000000606082015260800190565b60008219821115611e4e57634e487b7160e01b600052601160045260246000fd5b500190565b600082611e7057634e487b7160e01b600052601260045260246000fd5b500490565b600181811c90821680611e8957607f821691505b60208210811415611eaa57634e487b7160e01b600052602260045260246000fd5b50919050565b634e487b7160e01b600052600160045260246000fd5b634e487b7160e01b600052602160045260246000fd5b634e487b7160e01b600052604160045260246000fd5b60038110611f0257611f02611ec6565b50565b6001600160a01b0381168114611f0257600080fd5b8015158114611f0257600080fd5b60ff81168114611f0257600080fdfea264697066735822122027624e7f435ac760348d3a66c1ed21ccd7fdfb4824992c920caddc2c2483c8b764736f6c63430008070033"
|
4
4
|
}
|
package/dist/constants.js
CHANGED
@@ -17,7 +17,6 @@ export var Contracts;
|
|
17
17
|
Contracts["MARKET"] = "Market";
|
18
18
|
Contracts["MARKET_FACTORY"] = "MarketFactory";
|
19
19
|
Contracts["USER_REGISTRATION"] = "UserRegistration";
|
20
|
-
Contracts["SCHEDULER"] = "Scheduler";
|
21
20
|
})(Contracts || (Contracts = {}));
|
22
21
|
export var ContractType;
|
23
22
|
(function (ContractType) {
|
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,
|
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,cAGX;AAHD,WAAY,cAAc;IACxB,qEAAiD,CAAA;IACjD,mDAA+B,CAAA;AACjC,CAAC,EAHW,cAAc,KAAd,cAAc,QAGzB;AAED,MAAM,CAAN,IAAY,aAIX;AAJD,WAAY,aAAa;IACvB,6CAA0B,CAAA;IAC1B,yCAAuB,CAAA;IACvB,iDAA8B,CAAA;AAChC,CAAC,EAJW,aAAa,KAAb,aAAa,QAIxB;AAED,eAAe;AAEf,MAAM,CAAN,IAAY,uBAIX;AAJD,WAAY,uBAAuB;IACjC,kDAAqB,CAAA;IACrB,gDAAmB,CAAA;IACnB,0CAAa,CAAA;AACf,CAAC,EAJW,uBAAuB,KAAvB,uBAAuB,QAIlC;AAED,MAAM,CAAN,IAAY,gBAEX;AAFD,WAAY,gBAAgB;IAC1B,iCAAa,CAAA;AACf,CAAC,EAFW,gBAAgB,KAAhB,gBAAgB,QAE3B;AAED,cAAc;AAEd,MAAM,CAAN,IAAY,cAEX;AAFD,WAAY,cAAc;AAE1B,CAAC,EAFW,cAAc,KAAd,cAAc,QAEzB"}
|
@@ -7,58 +7,88 @@ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, ge
|
|
7
7
|
step((generator = generator.apply(thisArg, _arguments || [])).next());
|
8
8
|
});
|
9
9
|
};
|
10
|
-
|
11
|
-
|
12
|
-
|
13
|
-
return m ? m.call(o) : (o = typeof __values === "function" ? __values(o) : o[Symbol.iterator](), i = {}, verb("next"), verb("throw"), verb("return"), i[Symbol.asyncIterator] = function () { return this; }, i);
|
14
|
-
function verb(n) { i[n] = o[n] && function (v) { return new Promise(function (resolve, reject) { v = o[n](v), settle(resolve, reject, v.done, v.value); }); }; }
|
15
|
-
function settle(resolve, reject, d, v) { Promise.resolve(v).then(function(v) { resolve({ value: v, done: d }); }, reject); }
|
16
|
-
};
|
17
|
-
import ipfsClient from 'ipfs-http-client';
|
10
|
+
import OrbitDB from 'orbit-db';
|
11
|
+
import IPFS from 'ipfs';
|
12
|
+
const operations = ['>', '<', '==', '>=', '<='];
|
18
13
|
class OpportunityStorageProvider {
|
19
|
-
constructor() {
|
20
|
-
|
21
|
-
this.
|
22
|
-
|
23
|
-
storeContent(content) {
|
24
|
-
return __awaiter(this, void 0, void 0, function* () {
|
25
|
-
const { cid } = yield this.ipfsProvider.add(content);
|
26
|
-
console.log(`OpportunityStorageProvider: Upload content with CID (${cid})`);
|
27
|
-
return cid;
|
14
|
+
constructor(address) {
|
15
|
+
// Create IPFS instance
|
16
|
+
this.initIPFSInstance = () => __awaiter(this, void 0, void 0, function* () {
|
17
|
+
return yield IPFS.create({ repo: "/opportunity/ipfs" });
|
28
18
|
});
|
19
|
+
this.initIPFSInstance();
|
20
|
+
this.listen(address);
|
21
|
+
}
|
22
|
+
listen(address = '') {
|
23
|
+
this.initIPFSInstance().then((ipfs) => __awaiter(this, void 0, void 0, function* () {
|
24
|
+
const orbitdb = yield OrbitDB.createInstance(ipfs);
|
25
|
+
// Create / Open a database
|
26
|
+
if (address == '') {
|
27
|
+
this.db = yield orbitdb.docs('opportunity.database.default');
|
28
|
+
console.log(this.db.address);
|
29
|
+
}
|
30
|
+
else {
|
31
|
+
this.db = yield orbitdb.docs(address);
|
32
|
+
this.db.load();
|
33
|
+
}
|
34
|
+
// Listen for updates from peers
|
35
|
+
this.db.events.on("replicated", address => {
|
36
|
+
console.log(this.db.iterator({ limit: -1 }).collect());
|
37
|
+
});
|
38
|
+
// Add an entry
|
39
|
+
const hash = yield this.db.add("world");
|
40
|
+
console.log(hash);
|
41
|
+
// Query
|
42
|
+
const result = this.db.iterator({ limit: -1 }).collect();
|
43
|
+
console.log(JSON.stringify(result, null, 2));
|
44
|
+
}));
|
29
45
|
}
|
30
|
-
|
46
|
+
/**
|
47
|
+
* Returns a Promise that resolves to the multihash of the entry as a String.
|
48
|
+
* @param doc
|
49
|
+
* @returns
|
50
|
+
*/
|
51
|
+
store(doc) {
|
31
52
|
return __awaiter(this, void 0, void 0, function* () {
|
32
|
-
|
33
|
-
|
34
|
-
|
53
|
+
try {
|
54
|
+
const hash = yield this.db.put(doc).then(hash => {
|
55
|
+
return hash;
|
56
|
+
});
|
57
|
+
return hash;
|
58
|
+
}
|
59
|
+
catch (error) {
|
60
|
+
console.log(error);
|
61
|
+
return '';
|
62
|
+
}
|
35
63
|
});
|
36
64
|
}
|
37
|
-
|
38
|
-
|
65
|
+
/**
|
66
|
+
* Returns an Array of all Objects that match the given key in their _id field or the field specified by indexBy. If no document with
|
67
|
+
* that key exists, this returns an empty array.
|
68
|
+
* @param key
|
69
|
+
*/
|
70
|
+
retrieveDoc(key = '', collection) {
|
39
71
|
return __awaiter(this, void 0, void 0, function* () {
|
40
|
-
const file = this.ipfsProvider.get(cid);
|
41
|
-
console.log(file.type, file.path);
|
42
|
-
if (!file.content)
|
43
|
-
return -1;
|
44
|
-
const content = [];
|
45
72
|
try {
|
46
|
-
|
47
|
-
|
48
|
-
content.push(chunk);
|
49
|
-
}
|
73
|
+
const docs = yield this.db.get(key);
|
74
|
+
return docs;
|
50
75
|
}
|
51
|
-
catch (
|
52
|
-
|
53
|
-
|
54
|
-
if (_c && !_c.done && (_a = _b.return)) yield _a.call(_b);
|
55
|
-
}
|
56
|
-
finally { if (e_1) throw e_1.error; }
|
76
|
+
catch (error) {
|
77
|
+
console.log(error);
|
78
|
+
return [];
|
57
79
|
}
|
58
|
-
|
80
|
+
});
|
81
|
+
}
|
82
|
+
retrieveDocsByCollection(collection) {
|
83
|
+
return __awaiter(this, void 0, void 0, function* () {
|
84
|
+
return yield this.db.query((doc) => doc[collection] == collection);
|
85
|
+
});
|
86
|
+
}
|
87
|
+
deleteDoc(key) {
|
88
|
+
return __awaiter(this, void 0, void 0, function* () {
|
89
|
+
const hash = yield this.db.del(key);
|
59
90
|
});
|
60
91
|
}
|
61
92
|
}
|
62
|
-
|
63
|
-
export default opportunityStorageProvider;
|
93
|
+
export default OpportunityStorageProvider;
|
64
94
|
//# sourceMappingURL=OpportunityStorageProvider.js.map
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"OpportunityStorageProvider.js","sourceRoot":"","sources":["../../../src/modules/storage/OpportunityStorageProvider.ts"],"names":[],"mappings":"
|
1
|
+
{"version":3,"file":"OpportunityStorageProvider.js","sourceRoot":"","sources":["../../../src/modules/storage/OpportunityStorageProvider.ts"],"names":[],"mappings":"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"}
|
@@ -15,7 +15,7 @@ function syncMarkets() {
|
|
15
15
|
return __awaiter(this, void 0, void 0, function* () {
|
16
16
|
//sync Markets
|
17
17
|
yield opportunityService.getProviderInterface().getLogs({
|
18
|
-
address: addressMap[Contracts.MARKET_FACTORY],
|
18
|
+
address: addressMap[opportunityService.getEthNetwork()][Contracts.MARKET_FACTORY],
|
19
19
|
fromBlock: 1,
|
20
20
|
toBlock: 'latest'
|
21
21
|
}).then((logs) => {
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"sync-markets.js","sourceRoot":"","sources":["../../src/sync/sync-markets.ts"],"names":[],"mappings":";;;;;;;;;AAAA,OAAO,kBAAkB,MAAM,uBAAuB,CAAC;AACvD,OAAO,KAAK,UAAU,MAAM,8BAA8B,CAAC;AAC3D,OAAO,EAAE,SAAS,EAAE,MAAM,cAAc,CAAC;AACzC,OAAO,EAAE,UAAU,EAAE,MAAM,uBAAuB,CAAC;AAEnD,SAAe,WAAW;;QACrB,cAAc;QACd,MAAM,kBAAkB,CAAC,oBAAoB,EAAE,CAAC,OAAO,CAAC;YACrD,OAAO,EAAE,UAAU,CAAC,SAAS,CAAC,cAAc,CAAC;
|
1
|
+
{"version":3,"file":"sync-markets.js","sourceRoot":"","sources":["../../src/sync/sync-markets.ts"],"names":[],"mappings":";;;;;;;;;AAAA,OAAO,kBAAkB,MAAM,uBAAuB,CAAC;AACvD,OAAO,KAAK,UAAU,MAAM,8BAA8B,CAAC;AAC3D,OAAO,EAAE,SAAS,EAAE,MAAM,cAAc,CAAC;AACzC,OAAO,EAAE,UAAU,EAAE,MAAM,uBAAuB,CAAC;AAEnD,SAAe,WAAW;;QACrB,cAAc;QACd,MAAM,kBAAkB,CAAC,oBAAoB,EAAE,CAAC,OAAO,CAAC;YACrD,OAAO,EAAE,UAAU,CAAC,kBAAkB,CAAC,aAAa,EAAE,CAAC,CAAC,SAAS,CAAC,cAAc,CAAC;YACjF,SAAS,EAAE,CAAC;YACZ,OAAO,EAAE,QAAQ;SACpB,CAAC,CAAC,IAAI,CAAC,CAAC,IAAI,EAAE,EAAE;YACb,OAAO,CAAC,GAAG,CAAC,4BAA4B,CAAC,CAAA;YACzC,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,EAAE;gBACf,IAAI,GAAG,IAAI,KAAK,CAAC,OAAO,CAAC,GAAG,CAAC,MAAM,CAAC,IAAI,GAAG,CAAC,MAAM,CAAC,MAAM,EAAE;oBACvD,UAAU,CAAC,GAAG,CAAC,CAAC,CAAC,qBAAqB;iBACzC;YACL,CAAC,CAAC,CAAA;QACN,CAAC,CAAC;aACD,KAAK,CAAC,GAAG,CAAC,EAAE;YACT,OAAO,CAAC,GAAG,CAAC,wCAAwC,GAAG,GAAG,CAAC,CAAA;QAC/D,CAAC,CAAC,CAAA;IACN,CAAC;CAAA;AAED,eAAe,WAAW,CAAC"}
|
package/package.json
CHANGED
@@ -1,6 +1,6 @@
|
|
1
1
|
{
|
2
2
|
"name": "opportunity-service",
|
3
|
-
"version": "0.0.
|
3
|
+
"version": "0.0.540",
|
4
4
|
"description": "A service layer that connects all services between the blockchain and ui.",
|
5
5
|
"main": "index.js",
|
6
6
|
"scripts": {
|
@@ -40,24 +40,35 @@
|
|
40
40
|
"typescript": "^4.5.2"
|
41
41
|
},
|
42
42
|
"dependencies": {
|
43
|
+
"@ethersproject/providers": "^5.5.0",
|
43
44
|
"@toruslabs/torus-embed": "^1.10.14",
|
44
45
|
"@types/sqlite3": "^3.1.7",
|
45
46
|
"@types/web3": "^1.2.2",
|
47
|
+
"@vocdoni/census": "^1.14.1",
|
48
|
+
"@vocdoni/client": "^1.14.2",
|
49
|
+
"@vocdoni/contract-wrappers": "^1.14.1",
|
50
|
+
"@vocdoni/data-models": "^1.14.2",
|
51
|
+
"@vocdoni/voting": "^1.14.0",
|
46
52
|
"assert": "^2.0.0",
|
53
|
+
"bluebird": "^3.7.2",
|
47
54
|
"compression": "^1.7.4",
|
48
55
|
"cors": "^2.8.5",
|
49
56
|
"dotenv": "^8.2.0",
|
50
57
|
"dvote-js": "^1.13.3",
|
58
|
+
"eth-crypto": "^2.1.0",
|
51
59
|
"ethereumjs-tx": "^2.1.2",
|
60
|
+
"ethereumjs-wallet": "^1.0.2",
|
52
61
|
"ethers": "^5.2.0",
|
53
62
|
"ethrpc": "^6.2.4",
|
54
63
|
"express": "^4.17.1",
|
55
64
|
"fortmatic": "^2.2.1",
|
56
|
-
"ipfs": "^0.54.
|
65
|
+
"ipfs": "^0.54.5",
|
57
66
|
"ipfs-api": "^26.1.2",
|
58
67
|
"ipfs-core": "^0.7.1",
|
59
68
|
"ipfs-http-client": "^49.0.4",
|
69
|
+
"keythereum": "^1.2.0",
|
60
70
|
"md5": "^2.3.0",
|
71
|
+
"orbit-db": "^0.28.0",
|
61
72
|
"web3": "^1.3.5"
|
62
73
|
}
|
63
74
|
}
|
@@ -12,28 +12,32 @@ import opportunityAPI from './api/index';
|
|
12
12
|
import opportunityStorageProvider from "./modules/storage/OpportunityStorageProvider";
|
13
13
|
|
14
14
|
import Web3 from 'web3';
|
15
|
+
import OpportunityStorageProvider from "./modules/storage/OpportunityStorageProvider";
|
16
|
+
import { EthNetworkID } from "dvote-js";
|
15
17
|
|
16
18
|
class OpportunityService {
|
17
19
|
private eventEmitter = opportunityEventEmitter;
|
18
20
|
private running: boolean = false;
|
19
|
-
private syncing: boolean;
|
21
|
+
private syncing: boolean = false;
|
20
22
|
private ethersProvider : providers.JsonRpcProvider = ethers.getDefaultProvider('http://localhost:8545');
|
21
23
|
private ethersSigner : providers.JsonRpcSigner = null;
|
22
|
-
private static defaultProvider
|
24
|
+
private static defaultProvider = new Web3('http://localhost:8545')
|
23
25
|
private opportunityLogger = null;
|
24
|
-
private storageProvider =
|
26
|
+
private storageProvider = null;
|
25
27
|
private currentAccount = null;
|
26
|
-
private ethNetwork : string = '
|
27
|
-
public
|
28
|
+
private ethNetwork : EthNetworkID | string = 'rinkeby'
|
29
|
+
public storage = null
|
28
30
|
|
29
31
|
private static instance: OpportunityService;
|
30
32
|
|
33
|
+
public api = opportunityAPI;
|
34
|
+
|
31
35
|
/**
|
32
36
|
* The Singleton's constructor should always be private to prevent direct
|
33
37
|
* construction calls with the `new` operator.
|
34
38
|
*/
|
35
39
|
private constructor() {
|
36
|
-
this.ethNetwork = '
|
40
|
+
this.ethNetwork = 'rinkeby'
|
37
41
|
}
|
38
42
|
|
39
43
|
/**
|
@@ -70,21 +74,27 @@ class OpportunityService {
|
|
70
74
|
startEventListeners(eventDictionary, onComplete);
|
71
75
|
}
|
72
76
|
|
73
|
-
|
74
|
-
switch(
|
77
|
+
setNetworkParameters(networkId: number, dbAddress: string) {
|
78
|
+
switch(networkId) {
|
75
79
|
case 1:
|
76
80
|
this.ethNetwork = 'mainnet'
|
77
81
|
break
|
78
82
|
case 4:
|
79
|
-
this.ethNetwork = '
|
83
|
+
this.ethNetwork = 'rinkeby'
|
80
84
|
break
|
81
85
|
default:
|
82
|
-
this.ethNetwork = '
|
86
|
+
this.ethNetwork = 'rinkeby'
|
83
87
|
}
|
88
|
+
|
89
|
+
this.storageProvider = new OpportunityStorageProvider(dbAddress)
|
90
|
+
}
|
91
|
+
|
92
|
+
getEthNetwork(): EthNetworkID | string {
|
93
|
+
return this.ethNetwork
|
84
94
|
}
|
85
95
|
|
86
|
-
|
87
|
-
return this.
|
96
|
+
getStorageProvider() {
|
97
|
+
return this.storageProvider
|
88
98
|
}
|
89
99
|
|
90
100
|
async startService() {
|
@@ -126,18 +136,6 @@ class OpportunityService {
|
|
126
136
|
return this.syncing;
|
127
137
|
}
|
128
138
|
|
129
|
-
accessContractUploadBlock(contract: Contracts) {
|
130
|
-
return blocksMap[contract];
|
131
|
-
}
|
132
|
-
|
133
|
-
accessContractAddress(contract: Contracts) {
|
134
|
-
return addressesMap[contract];
|
135
|
-
}
|
136
|
-
|
137
|
-
accessContractABI(contract: Contracts) {
|
138
|
-
return abiMap[contract];
|
139
|
-
}
|
140
|
-
|
141
139
|
getDefaultProviderInterface() {
|
142
140
|
return OpportunityService.defaultProvider;
|
143
141
|
}
|
@@ -0,0 +1,30 @@
|
|
1
|
+
import * as assert from 'assert'
|
2
|
+
import { VotingApi, VochainWaiter } from '@vocdoni/voting'
|
3
|
+
import { GatewayPool } from '@vocdoni/client'
|
4
|
+
|
5
|
+
export async function checkVoteResults(processId: string, gwPool: GatewayPool) {
|
6
|
+
assert.strictEqual(typeof processId, "string")
|
7
|
+
|
8
|
+
console.log("Waiting a bit for the votes to be received", processId)
|
9
|
+
const nextBlock = 2 + await VotingApi.getBlockHeight(gwPool)
|
10
|
+
await VochainWaiter.waitUntil(nextBlock, gwPool, { verbose: true })
|
11
|
+
|
12
|
+
console.log("Fetching the number of votes for", processId)
|
13
|
+
const envelopeHeight = await VotingApi.getEnvelopeHeight(processId, gwPool)
|
14
|
+
console.log('Votes submitted: ' + envelopeHeight)
|
15
|
+
|
16
|
+
const processState = await VotingApi.getProcessState(processId, gwPool)
|
17
|
+
|
18
|
+
console.log("Waiting for the process to end", processId)
|
19
|
+
await VochainWaiter.waitUntil(processState.endBlock, gwPool, { verbose: true })
|
20
|
+
|
21
|
+
console.log("Waiting a bit for the results to be ready", processId)
|
22
|
+
await VochainWaiter.wait(2, gwPool, { verbose: true })
|
23
|
+
|
24
|
+
console.log("Fetching the vote results for", processId)
|
25
|
+
const rawResults = await VotingApi.getResults(processId, gwPool)
|
26
|
+
const totalVotes = await VotingApi.getEnvelopeHeight(processId, gwPool)
|
27
|
+
|
28
|
+
console.log('Raw voting results: ' + rawResults)
|
29
|
+
console.log('Total votes: ' + totalVotes)
|
30
|
+
}
|
@@ -0,0 +1,36 @@
|
|
1
|
+
import { GatewayPool, IGatewayDiscoveryParameters, DVoteGateway } from "@vocdoni/client"
|
2
|
+
import { EthNetworkID } from "@vocdoni/common"
|
3
|
+
import { VocdoniEnvironment } from "dvote-js"
|
4
|
+
|
5
|
+
export async function connectGateways(networkId: EthNetworkID, environment: VocdoniEnvironment, bootnodeContentUri: string){
|
6
|
+
console.log("Connecting to the gateways")
|
7
|
+
|
8
|
+
const options: IGatewayDiscoveryParameters = {
|
9
|
+
networkId: networkId,
|
10
|
+
environment: environment,
|
11
|
+
bootnodesContentUri: bootnodeContentUri
|
12
|
+
}
|
13
|
+
|
14
|
+
const pool = await GatewayPool.discover(options)
|
15
|
+
|
16
|
+
console.log("Connected to", pool.dvoteUri)
|
17
|
+
console.log("Connected to", pool.provider["connection"].url)
|
18
|
+
|
19
|
+
return pool
|
20
|
+
}
|
21
|
+
|
22
|
+
export async function getOracleClient() {
|
23
|
+
console.log('Creating oracle instance...')
|
24
|
+
const oracleClient = new DVoteGateway({
|
25
|
+
uri: 'https://signaling-oracle.dev.vocdoni.net/dvote',
|
26
|
+
supportedApis: ["oracle"]
|
27
|
+
})
|
28
|
+
|
29
|
+
console.log('Initiating oracle...')
|
30
|
+
await oracleClient.init()
|
31
|
+
|
32
|
+
console.log('Oracle status: ' + oracleClient.isReady)
|
33
|
+
console.log('Oracle health: ' + oracleClient.health)
|
34
|
+
|
35
|
+
return oracleClient
|
36
|
+
}
|
@@ -0,0 +1,34 @@
|
|
1
|
+
import { GatewayPool } from '@vocdoni/client'
|
2
|
+
import { EntityMetadataTemplate } from '@vocdoni/data-models'
|
3
|
+
import { EntityApi } from '@vocdoni/voting'
|
4
|
+
import { Wallet } from 'ethers'
|
5
|
+
import * as assert from 'assert'
|
6
|
+
|
7
|
+
export async function ensureEntityMetadata(creatorWallet: Wallet, gwPool: GatewayPool) {
|
8
|
+
console.log("Making sure metadata doesn't already exist...")
|
9
|
+
const meta = await EntityApi.getMetadata(creatorWallet.address, gwPool).catch(err => console.log(err))
|
10
|
+
if (!meta) return false
|
11
|
+
|
12
|
+
console.log("Setting Metadata for entity", creatorWallet.address)
|
13
|
+
const metadata = JSON.parse(JSON.stringify(EntityMetadataTemplate))
|
14
|
+
|
15
|
+
metadata.name = { default: "Opportunity" }
|
16
|
+
metadata.description = { default: "Opportunity, decentralized job markets" }
|
17
|
+
metadata.media = {
|
18
|
+
avatar: "https://picsum.photos/200/300",
|
19
|
+
header: "Opportunity, decentralized job markets",
|
20
|
+
logo: "https://picsum.photos/200/300"
|
21
|
+
}
|
22
|
+
|
23
|
+
await EntityApi.setMetadata(creatorWallet.address, metadata, creatorWallet, gwPool)
|
24
|
+
console.log('Entity metadata set')
|
25
|
+
|
26
|
+
// Read back
|
27
|
+
const entityMetaPost = await EntityApi.getMetadata(creatorWallet.address, gwPool)
|
28
|
+
if (!entityMetaPost) return false
|
29
|
+
|
30
|
+
assert.strictEqual(entityMetaPost.name.default, metadata.name.default)
|
31
|
+
assert.strictEqual(entityMetaPost.description.default, metadata.description.default)
|
32
|
+
|
33
|
+
return true
|
34
|
+
}
|
@@ -0,0 +1,116 @@
|
|
1
|
+
import { Wallet } from "@ethersproject/wallet"
|
2
|
+
import { CensusErc20Api } from "@vocdoni/census"
|
3
|
+
import { ProcessState, VotingApi, VotingOracleApi } from "@vocdoni/voting"
|
4
|
+
import { DVoteGateway, Erc20TokensApi, GatewayPool } from "@vocdoni/client"
|
5
|
+
import { ProcessMetadataTemplate } from "@vocdoni/data-models"
|
6
|
+
import { ProcessMode, ProcessContractParameters, ProcessEnvelopeType } from '@vocdoni/contract-wrappers'
|
7
|
+
import * as assert from 'assert'
|
8
|
+
import { waitUntilPresent } from "./util/wait-until-present"
|
9
|
+
|
10
|
+
export async function launchNewVote(
|
11
|
+
creatorWallet: Wallet,
|
12
|
+
tokenAddress: string,
|
13
|
+
gwPool: GatewayPool,
|
14
|
+
oracleClient: DVoteGateway,
|
15
|
+
disputeId: string,
|
16
|
+
employer: string,
|
17
|
+
worker: string
|
18
|
+
) {
|
19
|
+
console.log('Launching new vote...')
|
20
|
+
|
21
|
+
if (!await Erc20TokensApi.isRegistered(tokenAddress, gwPool)) {
|
22
|
+
await CensusErc20Api.registerTokenAuto(
|
23
|
+
tokenAddress,
|
24
|
+
creatorWallet,
|
25
|
+
gwPool
|
26
|
+
)
|
27
|
+
|
28
|
+
assert(await Erc20TokensApi.isRegistered(tokenAddress, gwPool))
|
29
|
+
}
|
30
|
+
|
31
|
+
const sourceBlockHeight = (await gwPool.provider.getBlockNumber()) - 1
|
32
|
+
const tokenInfo = await CensusErc20Api.getTokenInfo(tokenAddress, gwPool)
|
33
|
+
const proof = await CensusErc20Api.generateProof(tokenAddress, creatorWallet.address, tokenInfo.balanceMappingPosition, sourceBlockHeight, gwPool.provider)
|
34
|
+
|
35
|
+
if (!proof?.storageProof?.length) throw new Error("Invalid storage proof")
|
36
|
+
|
37
|
+
console.log("Preparing the new vote metadata")
|
38
|
+
const processMetadataPre = JSON.parse(JSON.stringify(ProcessMetadataTemplate)) // make a copy of the template
|
39
|
+
processMetadataPre.title.default = disputeId,
|
40
|
+
processMetadataPre.description.default = `Dispute: ${disputeId}`,
|
41
|
+
processMetadataPre.questions = [
|
42
|
+
{
|
43
|
+
title: { default: "Contract Dispute" },
|
44
|
+
description: { default: "Please choose one of the two participants" },
|
45
|
+
choices: [
|
46
|
+
{ title: { default: employer }, value: 0 },
|
47
|
+
{ title: { default: worker }, value: 1 },
|
48
|
+
]
|
49
|
+
}
|
50
|
+
]
|
51
|
+
processMetadataPre.meta.disputeId = disputeId;
|
52
|
+
|
53
|
+
const maxValue = processMetadataPre.questions.reduce((prev, cur) => {
|
54
|
+
const localMax = cur.choices.reduce((prev, cur) => prev > cur.value ? prev : cur.value, 0)
|
55
|
+
return localMax > prev ? localMax : prev
|
56
|
+
}, 0)
|
57
|
+
|
58
|
+
console.log("Getting the block height")
|
59
|
+
const currentBlock = await VotingApi.getBlockHeight(gwPool)
|
60
|
+
const startBlock = currentBlock + 15 //start after 15 blocks
|
61
|
+
const blockCount = 6 * 4 // 4m
|
62
|
+
|
63
|
+
const processParamsPre = {
|
64
|
+
mode: ProcessMode.make({ autoStart: true }),
|
65
|
+
envelopeType: ProcessEnvelopeType.make({}), // bit mask
|
66
|
+
metadata: processMetadataPre,
|
67
|
+
startBlock,
|
68
|
+
blockCount,
|
69
|
+
maxCount: 1,
|
70
|
+
maxValue,
|
71
|
+
maxTotalCost: 0,
|
72
|
+
costExponent: 10000, // 1.0000
|
73
|
+
maxVoteOverwrites: 1,
|
74
|
+
sourceBlockHeight,
|
75
|
+
tokenAddress,
|
76
|
+
paramsSignature: "0x0000000000000000000000000000000000000000000000000000000000000000"
|
77
|
+
}
|
78
|
+
|
79
|
+
const tokenDetails = {
|
80
|
+
balanceMappingPosition: tokenInfo.balanceMappingPosition,
|
81
|
+
storageHash: proof.storageHash,
|
82
|
+
storageProof: {
|
83
|
+
key: proof.storageProof[0].key,
|
84
|
+
value: proof.storageProof[0].value,
|
85
|
+
proof: proof.storageProof[0].proof
|
86
|
+
}
|
87
|
+
}
|
88
|
+
|
89
|
+
console.log("Creating the process")
|
90
|
+
const processId = await VotingOracleApi.newProcessErc20(
|
91
|
+
processParamsPre,
|
92
|
+
tokenDetails,
|
93
|
+
creatorWallet,
|
94
|
+
gwPool,
|
95
|
+
oracleClient
|
96
|
+
)
|
97
|
+
|
98
|
+
assert(processId)
|
99
|
+
console.log("Created process with process id: ", processId)
|
100
|
+
|
101
|
+
await waitUntilPresent(processId, gwPool)
|
102
|
+
|
103
|
+
console.log('Checking process params to ensure process was created...')
|
104
|
+
const processParams: ProcessState = await VotingApi.getProcessState(processId, gwPool)
|
105
|
+
|
106
|
+
assert.strictEqual(processParams?.entityAddress.toLowerCase(), creatorWallet.address.toLowerCase())
|
107
|
+
assert.strictEqual(processParams?.startBlock, processParamsPre?.startBlock, "SENT " + JSON.stringify(processParamsPre) + " GOT " + JSON.stringify(processParams))
|
108
|
+
assert.strictEqual(processParams?.blockCount, processParamsPre?.blockCount)
|
109
|
+
assert.strictEqual(processParams?.censusUri, processParamsPre?.censusUri)
|
110
|
+
|
111
|
+
const processMetadata = await VotingApi.getProcessMetadata(processId, gwPool)
|
112
|
+
console.log('Process created with metadata: ')
|
113
|
+
console.log(processMetadata)
|
114
|
+
|
115
|
+
return { processId, processParams, processMetadata }
|
116
|
+
}
|