humanprotocol / human-protocol Goto Github PK
View Code? Open in Web Editor NEWHuman Protocol python/js/ts Monorepo with example
Home Page: https://dashboard.humanprotocol.org
License: MIT License
Human Protocol python/js/ts Monorepo with example
Home Page: https://dashboard.humanprotocol.org
License: MIT License
The skale implementation has already had a good deal of work done for it
humanprotocol/hmt-escrow#261
humanprotocol/hmt-escrow@5357df3
So please build on top of this.
HMT-Escrow supports arbitrary EVM networks but there's a bit of work to do to make a network first class and make sure that it works. All of our EVM network launches are supported by gitcoin but you can gain a yearly bonus by being our network sponsor.
Problem:
Unexpected behavior of Math.floor(10**19/3). The result is 3333333333333333500 which is wrong because this number multiplied by 3 is greater that 10*19. That causes payments to fail.
Location:
reputation-oracle/index.js
Steps to reproduce:
Implement new Figma designs into escrow-dashboard.
https://www.figma.com/file/u81GKebVavmQW8zGHb5Jgo/Dashboard?node-id=600%3A10388&t=ceJCZ7OFaN25AFvo-0
Human Protocol supports arbitrary EVM networks but there's a bit of work to do to make a network first class and make sure that it works. All of our EVM network launches are payable in ETH and you can gain a yearly bonus by being our network sponsor. If you need support please join tech-discussions on the human protocol discord linked on hmt.ai.
Deployed for Mumbai network (Polygon testnet)
Launcher: https://fortune-launcher-mumbai-humanprotocol.vercel.app/
Exchange: https://fortune-exchange-mumbai.vercel.app/
Repuation oracle: https://fortune-reputation-oracle-mumbai.vercel.app/
Recording oracle: https://fortune-recording-oracle-mumbai.vercel.app
Please add a python test like
diff --git a/test/hmt_escrow/test_eth_bridge.py b/test/hmt_escrow/test_eth_bridge.py
index 5fa0df0..f908c3a 100644
--- a/test/hmt_escrow/test_eth_bridge.py
+++ b/test/hmt_escrow/test_eth_bridge.py
@@ -45,16 +45,6 @@ class EthBridgeTestCase(unittest.TestCase):
def test_get_factory(self):
self.assertIsNotNone(get_factory(self.job.factory_contract.address))
- def test_get_pub_key_from_address(self):
- with self.assertRaises(ValueError):
- get_pub_key_from_addr("badaddress")
- os.environ["GAS_PAYER"] = self.credentials["gas_payer"]
- os.environ["GAS_PAYER_PRIV"] = self.credentials["gas_payer_priv"]
- set_pub_key_at_addr(self.rep_oracle_pub_key)
- self.assertEqual(
- get_pub_key_from_addr(os.environ["GAS_PAYER"]), self.rep_oracle_pub_key
- )
-
def test_set_pub_key_at_address(self):
os.environ["GAS_PAYER"] = self.credentials["gas_payer"]
os.environ["GAS_PAYER_PRIV"] = self.credentials["gas_payer_priv"]
Problem: metamask doesn't allow to add tokens for chainId=1337
Solution: Change chain id used when running a local network to any Id other than 1337
More info: https://community.metamask.io/t/not-able-to-import-custom-tokens-on-mm-from-ganache/22939
Example of the reputation network. Store addresses and their reputations in the Blockchain or inside the reputation oracle's process.
Worker payouts should be adjusted based on the reputation score.
https://github.com/humanprotocol/fortune/blob/master/examples/reputation-oracle/index.js#L44
Each worker has his own reputation score - a number from 0 to 1 which has correlation on the reward that is given to this particular address
In case of “correct” work(from the rep oracle perspective), each worker should be rewarded with the appropriate amount of tokens and his priority should be increased
For the payout, it could be the formula: total reward = SUM(reputation_score * n * x), where n - is an amount of task being made by one worker, x - is some reward variable that needs to be found
Reputation Scores should be adjustable values. For the correct work reputation score goes higher, for not correct it goes down
Currently we are missing a lot of escrow factories that we previously ran. Let's track down All of the Escrow Factories that Intuition Machines has ever run (ethereum ropsten/polygon dev net) and make sure they are on the dashboard
Implement All Networks tab to agreegate all chain data.
Human Protocol supports arbitrary EVM networks but there's a bit of work to do to make a network first class and make sure that it works. All of our EVM network launches are payable in ETH and you can gain a yearly bonus by being our network sponsor. If you need support please join tech-discussions on the human protocol discord linked on hmt.ai.
Closed with #10
@portuu3 , we should support escrow factory upgrades in the dashboard.
Please work on smart contract & subgraph for this task as we discussed yesterday and let me know once it's ready to be integrated on frontend.
Also currently we are missing a lot of escrow factories that we previously ran. Let's track down all of the Escrow factories that Intuition Machines has ever run (ethereum ropsten/polygon dev net) and make sure they are on the dashboard
Staking/Slashing feature requires not only Staking/RewardPool contract implementation, but also Escrow/EscrowFactory contract changes.
Therefore, all the other components of Human Protocol needs to be updated accordingly. It's not limited to SDK, but also the fortune, escrow-dashboard, and other example apps.
This requires a lot of changes, so it's better to have feature branch for this functionality, so that we can make sure everything is working properly on that feature branch.
We need staging environment for dashboard, and subgraph.
This requirement is still WIP. There will be much more added to staging environment.
Python package should be part of monorepo.
@ansaqib , can you please write more details here?
discover
option to unittest
.Closes #40
Use cloudflare workers and storage to make a high speed implementation of the reputation oracle and recording oracle
Allow the users to view all jobs. Allow user to click on job and view contract details
Reputation and Recording oracles should have acceptance criteria to participate in the job process
REP_ORACLE_STAKE_BOUNDARY
(should be configurable via env. variables)Escrow.sol
interface. Also, Escrow should not be in a finished state(Canceled, Completed, or Paid)Recording oracle also should validate the incoming manifest(JSON file)
Add a link to eth-kvstore in escrow dashboard
Fortune recording oracle is not calling to storeResults function for emitting the event "IntermediateStorage" once the required number of fortunes are submited.
It should pass the url of the file uploaded to the s3 bucket containing the solution.
HMT-Escrow supports arbitrary networks but there's a bit of work to do to make a network first class and make sure that it works. You can gain a yearly bonus by being our network sponsor. If you need support please join tech-discussions on the HUMAN Protocol discord linked on hmt.ai.
Problem:
If you use a big funding amount, on a bulkPayout
step there will be an error due to the incorrect number representation (5e+21
for example)
Location:
reputation-oracle/index.js
Steps to reproduce:
How to fix:
Replace Number with BigInt
const balance = Number(await Escrow.methods.getBalance().call({ from: account.address }));
Launch an example app on the Elrond network. The easiest one to get going is our example fortune:
With Fortune, an example HUMAN application that demonstrates how to create and fulfill job requests using the HUMAN protocol.
Create a Rust implementation of Fortune https://github.com/humanprotocol/fortune and make a video of the functionality of the app working on the new network and link to relevant scanner transactions.
We should make sure we get all the new fixes from hmt-escrow recently merged
Write a proxy smart contract for Escrow Factory, so the address used as factory address will always be the same, no matter if we deploy a new factory contract.
The proxy contract should store the history of factories and the current active factory.
Add a function to make a factory inactive.
Move pending issues from all repos (including fortune) that have been moved into monorepo
Display correct token supply on each network.
Deploy eth kvstore gui on vercel
Deployed to: https://eth-kvstore-gui.vercel.app/
Human Protocol supports arbitrary EVM networks but there's a bit of work to do to make a network first class and make sure that it works. All of our EVM network launches are payable in ETH and you can gain a yearly bonus by being our network sponsor. If you need support please join tech-discussions on the human protocol discord linked on hmt.ai.
HMT-Escrow supports arbitrary EVM networks but there's a bit of work to do to make a network first class and make sure that it works. All of our EVM network launches are supported by gitcoin but you can gain a yearly bonus by being our network sponsor. If you need support please join tech-discussions on the human protocol discord linked on hmt.ai.
┆Issue is synchronized with this Asana task by Unito
Analize humming humman and write spec:
Deploy the fortune server to cloudflare (cf) pages/workers
Pypi build is currently broken
From
.1.dist-info/zip-safe'
adding 'human_protocol_sdk-0.0.1.dist-info/RECORD'
removing build/bdist.linux-x86_64/wheel
Uploading distributions to https://upload.pypi.org/legacy/
Uploading human_protocol_sdk-0.0.1-py3-none-any.whl
25l
0% ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 0.0/42.5 kB • --:-- • ?
0% ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 0.0/42.5 kB • --:-- • ?
100% ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 42.5/42.5 kB • 00:00 • 106.7 MB/s
100% ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 42.5/42.5 kB • 00:00 • 106.7 MB/s
100% ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 42.5/42.5 kB • 00:00 • 106.7 MB/s
100% ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 42.5/42.5 kB • 00:00 • 106.7 MB/s
25hWARNING Error during upload. Retry with the --verbose option for more details.
ERROR HTTPError: 400 Bad Request from https://upload.pypi.org/legacy/
File already exists. See https://pypi.org/help/#file-name-reuse for
more information.
Error: Process completed with exit code 1.
0s
Also let's only run these actions when we release a version/tag. We can upload the version that we release
Add more networks on dashboard/leaderboard
A declarative, efficient, and flexible JavaScript library for building user interfaces.
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google ❤️ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.