kleros / escrow Goto Github PK
View Code? Open in Web Editor NEWDecentralized Escrow - Ethereum Project
Home Page: https://escrow.kleros.io
License: MIT License
Decentralized Escrow - Ethereum Project
Home Page: https://escrow.kleros.io
License: MIT License
As an emergency fix, remove the notification menu.
Related to #11
Make it absolutely super clear about what's going on:
I got really confused, I wasn't sure how much money I'm disputing / agreeing to receive.
Also display the percentage of the total amount, not just the ETH value.
and we can click on it again which creates a new transaction.
As the transaction is confirming - display link to Etherscan and "confirming"
As the transaction is confirmed - display link to Etherscan and "confirmed"
Allow inputting an ENS address as recipient.
Related to kleros/tokens-on-trial#21 and kleros/court#19
Potentially a good idea to use consistent styling and brand identity.
Related to: #7 (comment)
The placeholder does not look like a placeholder and it took me while to know which fields needs updating.
As described in the title, the currency for arbitration in the xDai environment should be xDai instead of ETH.
Here is a screenshot : https://files.slack.com/files-pri/T451BH0RE-F03GR4ZL543/image.png
@0xferit are you the right person to tag for this?
I cancel transaction on MetaMask.
Button remains spinning.
Of course I can reload the page.
Nice to have to restore initial button state.
Show when case is expected to be finished voting. Have a link to the court page or otherwise show how to get more information on the case.
As mentioned in kleros/uniswap-frontend#12.
For uniswap.ninja, we mitigate the speed by caching the values so it won't take as long to load the second time the user visits the escrow.
To avoid exposure to a dos attack, see https://github.com/kleros/escrow/blob/master/.env .
PS: It happened to me recently :)
Kovan:
backend.js:6 Error: MetaEvidence Token information does not match token in the contract
at main.e9a07078.chunk.js:1
at v (1.93be02ba.chunk.js:1)
at Generator._invoke (1.93be02ba.chunk.js:1)
at Generator.e.<computed> [as next] (1.93be02ba.chunk.js:1)
at L (1.93be02ba.chunk.js:1)
at T (1.93be02ba.chunk.js:1)
Created escrow for 0.000000000000000002
of a newly created token: https://kovan.etherscan.io/tx/0xf49fc9b327146071092f10b00f024aeaee68547fbb185abcfdfe62f3c818a1b8
Otherwise they won't be able to create disputes.
Similar to: #18
Github repo called "kleros-front-end-web-react-reusable-components" and just add it to each and every project...
To have handy link to Etherscan + Github + Telegram + Slack + social media = massive value
Transparency. Encouraging feedback. Consistent branding.
Ticks many boxes.
Possible improvements:
Use some workflow similar to Uniswap.
Related to #24
It has be the guy who raises a dispute to convince jurors.
The default position is "innocent until proven guilty", it is your job to convince jurors.
It is not clear what is the default position.
Seems like by default everyone is losing LOL...
My recent tweet about 1. approve 2. transact pattern: https://twitter.com/marsxrobertson/status/1212856982933250059
It's similar to #63
I genuinely think that:
Is way much better...
I'm kind of an advanced user, I know that Metamask runs the transaction "as if" to estimate the gas cost, that's why it knows the token hasn't been approved (1st transaction) that's why showing in the UI that 2nd transaction is failing.
That's terrible usability.
Once upon a time (15 minutes ago) I have approved Escrow to spend tokens on my behalf.
(that was transaction 1/2)
I did not complete transaction 2/2, the one that actually moves tokens because I was afraid of the warning:
15 minutes lates returning to Escrow and it asks me for approve the same thing.
Good front-end can simply query blockchain token contract and check if the Escrow has sufficient allowance.
In order to improve the privacy of contracts, we need not to put upload everything in clear on IPFS. We only need them to be uploaded once a dispute is raised.
To do so:y
When creating the transaction, the document is uploaded encrypted with the public key of the sender and receiver.
To save on storage, an encryption key is created, used to encrypt the contract. The newly created private key is encrypted with the key of the sender and of the receiver.
The uploaded file contains:
-Encrypted contract.
-Decryption key encrypted with sender Public key. Since the sender create the transaction getting its public key is easy.
-Decryption key encrypted with receiver public key. To do so, we must look at a transaction done by this address (remember that addresses are hash of the public key and this key is revealed when a transaction is signed). If the receiver hasn't made a transaction yet, the private mode is unavailable.
The evidence contains the would be IPFS address (we can compute it from the hash of the document), but the document is not sent in clear now.
When a dispute arise, both sender and receiver have a private key allowing to decrypt the encryption key. When creating a dispute, they decrypt the document and upload it to IPFS. The evidence already points to this file, so for jurors nothing changes.
First thought: everything is public on the blockchain. Need to communicate to the users about the privacy implications.
So then I visited the link as a random MetaMask user.
Getting an error:
Error: Couldn't decode bytes from ABI: 0x
at o.formatOutputDynamicBytes [as _outputFormatter] (formatters.js:242)
at type.js:258
at o.decode (type.js:250)
at index.js:330
at Array.forEach (<anonymous>)
at m.decodeParameters (index.js:329)
at M.p._decodeMethodReturn (index.js:416)
at l.outputFormatter (index.js:740)
at l.formatOutput (index.js:167)
at o (index.js:444)
“Disputes will be resolved in the in Kleros” should show court policies, costs etc.
For now on the create transaction page, we just have a text of the link. It's not easy to copy. We should make it a copy field with a copy button.
Similar to #61
Adding new tokens - being asked for decimals.
Using tokens from TCR - noone is asking for decimals.
Are we making any assumptions?
There are som legitimate tokens with a different number of decimals, just lik BNB and GNT are not ERC20 BTW :)
The icon looks strange there. It is also unnecessary if we already have the button on the nav bar. We can follow Plinio's design or a quicker solution would be to have some text saying "You don't have any transactions yet, <create some>."
No need for a plus icon there. You are not adding notifications.
Use our IPFS node for hosting and displaying files otherwise they will never load.
Nothing happens after paying and if I pay again the transaction reverts (expected).
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.