Skip to content

mseijas/eth-marketplace

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

36 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Marketplace

What does this project do?

This project implements an online marketplace that operates on the blockchain

Project Architecture

  • The project is implemented with upgradability in mind using:
    • Proxy patterns
    • Delegation
    • EternalStorage data storage pattern
  • Permissioning is flexible
    • Each marketplace has an owner and a set of authorized accounts
    • Authorized accounts can create new stores and add them to the marketplace
    • Each new store has its own permissioning system
      • The owner of the store has full permissions over the store contract
      • Authorized accounts can add new products to the store
      • This grants store owners a lot of flexibility in managing their stores
  • Execution of all contracts can be paused by their respective owners in case of an attack
  • Store owners can withdraw all collected store money to their private accounts
  • Reentrancy attacks are prevented in all value-transfering transactions

👉 See design pattern decisions

👉 See avoiding common attacks

Getting Started

In order to get started install the project dependencies by running:

npm install

User Interace

⚠️ The web user interface of the project is still a work in progress (unfortunately)

To run a local webserver use the following command:

npm run dev

Testing

Project features a complete testing suite with 100% code coverage

👉 See coverage reports here

To run test locally use the following command:

npm run test:eth

To run the test coverage reporting tool locally run:

npm run coverage:eth

Compiling

To compile the project locally use:

npm run build:eth

And to perform a migration script use:

npm run deploy:eth

Deployed Addresses

Example contracts have been deployed to the Rinkeby network

👉 See deployed addressess here