Coder Social home page Coder Social logo

kleros / escrow Goto Github PK

View Code? Open in Web Editor NEW
17.0 15.0 8.0 3.07 MB

Decentralized Escrow - Ethereum Project

Home Page: https://escrow.kleros.io

License: MIT License

HTML 0.48% JavaScript 67.96% CSS 17.06% SCSS 14.50%
escrow ethereum blockchain web3 decentralized dapp arbitrable frontend

escrow's Introduction

Decentralized Escrow

escrow's People

Contributors

alcercu avatar clesaege avatar eccentricexit avatar epiqueras avatar hbarcelos avatar jaybuidl avatar kemuru avatar n1c01a5 avatar satello avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

escrow's Issues

Better explanation of uploading conract documents

If multiple files use .zip (or just support uploading multiple files)

  • One section for contracts.
  • One section "catch all", anything else you may want to add

Currently, it is not clear what is more important: attachment or plain text field.

image

I was thinking about something similar to

image

MetaEvidence Token information does not match token in the contract?

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

We should have a day separator

waiving
Currently, days and hh:mm:ss are just separated by a ":". This is quite uncommon.
We need it to work the same way as the T2CR:
days

If more than 2 days:
dd days, hh:mm:ss
If 1 day:
1 day, hh:mm:ss
If less than 1 day:
hh:mm:ss

Better explain the process, timeline and requirements of a dispute

Related to #24

Make it clear both parties have to pay

image

Make it clear "burden proof" is on you

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.

image

EDIT

It is not clear what is the default position.

Seems like by default everyone is losing LOL...

image

Use the pattern 1. approve 2. transact as opposed to two simultaneous transaction with 2nd fail warning in Metamask UI

My recent tweet about 1. approve 2. transact pattern: https://twitter.com/marsxrobertson/status/1212856982933250059

2 transactions

It's similar to #63

I genuinely think that:

  1. approve
  2. transact

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.

Escrow front-end to check approval / allowance to avoid delays and excessive gas consumption

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:

image

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.

Private Mode for the escrow.

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.

Better communicate to the user the privacy implications of the blockchain - can anyone see the transaction? (getting a strange error)

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)

image

Page not loading

Sometime when loading the main page or an escrow transaction, the page doesn't load.
This seems to happen randomly and refreshing (sometimes multiple times) leads to the correct page.

It makes me thing it's due to a concurrency issue but I'm not sure.

This happens on chrome.

bug

Quick Wins for the First Release

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>."
screen shot 2019-01-17 at 1 35 57 pm

No need for a plus icon there. You are not adding notifications.
screen shot 2019-01-17 at 1 36 52 pm

Capitalize email.
screen shot 2019-01-17 at 1 36 58 pm

Fix the font here.
screen shot 2019-01-17 at 1 37 20 pm

Use our IPFS node for hosting and displaying files otherwise they will never load.
screen shot 2019-01-17 at 1 38 06 pm

Add copy to clipboard.
screen shot 2019-01-17 at 1 38 23 pm

This is not working.
screen shot 2019-01-17 at 1 38 27 pm

"Summary"
screen shot 2019-01-17 at 1 38 37 pm

Nothing happens after paying and if I pay again the transaction reverts (expected).
screen shot 2019-01-17 at 1 50 52 pm

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.