Git Product home page Git Product logo

solidity-deposit-contract's Introduction

Smart Contract for Payment Channels over Ethereum

  • Pull the repository and perform the installation steps. There is no need to do these steps more than once on each computer.
  • Do not save any private keys on this repository.
  • Enjoy!

Table of Contents

Background

Relying on the notion of the payment channels using Ethereum, this project implements the concept by incorperating SGX (or any equivalent third party abilities). As a result, allowing usage of payment channels over Ethereum while minimizing gas costs and transaction amounts on the Blockchain.

Installation Instructions

  1. Download the latest node.js from: https://nodejs.org/en/download/

  2. Git clone/ pull the project from our github repository.

  3. Use npm init in the root directory (/DepositContract)

  4. If using Windows- open a windows command line as administrator and run:

    1. npm install --global --production windows-build-tools
    2. If that doesn't work - you have to go to the course video, lecture 37 and follow the second option.
  5. Install a bunch of libraries: (If using Windows- open cmd as admin, if Linux- sudo before each one)

    1. npm install --save solc
    2. npm install --save mocha ganache-cli [email protected]
    3. npm install --save fs-extra
    4. npm install --save [email protected]
    5. npm i truffle If any of these commands doesn't execute successfully, look online for solutions.
  6. Install libraries used for development of front end (not sure if this is a must in order to see it):

    1. npm install --save semantic-ui-react
    2. npm install --save semantic-ui-css
    3. npm install --save next-routes

    Again, if any of that doesn't work - you should search for a solution.

Compilation and Deployment Instructions

For Node

If you wish to re-compile the contract (you don't have to do it, and it's better you don't do it unless you have a good reason):

  1. cd ..\ethereum
  2. node compile.js
  3. (verify you see all 3 .json files inside \ethereum\build)
  4. node deploy.js
  5. Save the addresses you get for the factory and for the SGX simulator.
  6. The factory address should be placed in \ethereum\factory.js at line 6.
  7. Note: Sometimes when you use node compile.js or deploy you get some weird error. in this case - open node.js terminal as administrator from windows search, close the code editor and run the command from the terminal you opened. It fixes it.

For Truffle

  1. cd to Truffle/contract directory.
  2. In the command line:
    1. Windows- mklink Deposit.sol ....\ethereum\contracts\Deposit.sol
    2. Linux- sudo ln -s Deposit.sol ../../ethereum/contact/Deposit.sol
  3. cd ..
  4. truffle compile
  5. truffle migrate

Testing

with Node

  1. cd back into root directory (not sure if this is a must) and run: npm run dev

with truffle

  1. cd to Truffle directory
  2. truffle test

Front End interaction:

Wait until the command line tells you that compilation was successful.

  1. cd back into root directory (not sure if this is a must).
  2. Open chrome (or any other browser with metamask) and enter localhost:3000

Maintainers

@eitanlev

License

Solidity is licensed under GNU General Public License v3.0

Example

In Development

Documentation

In Development

Development

In Development

solidity-deposit-contract's People

Contributors

coditech0926 avatar

Stargazers

 avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar

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.