Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/allan7yin/middlemandapp
Middlware application for web3 - A smart, safer scam-blocking ETH JSON-RPC
https://github.com/allan7yin/middlemandapp
metamask nodejs react rpc-server tenderly web3
Last synced: 16 days ago
JSON representation
Middlware application for web3 - A smart, safer scam-blocking ETH JSON-RPC
- Host: GitHub
- URL: https://github.com/allan7yin/middlemandapp
- Owner: allan7yin
- Created: 2023-06-24T18:27:52.000Z (over 1 year ago)
- Default Branch: main
- Last Pushed: 2023-08-21T00:08:20.000Z (over 1 year ago)
- Last Synced: 2024-04-17T23:09:48.919Z (9 months ago)
- Topics: metamask, nodejs, react, rpc-server, tenderly, web3
- Language: JavaScript
- Homepage:
- Size: 16.1 MB
- Stars: 1
- Watchers: 1
- Forks: 2
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
Awesome Lists containing this project
README
## MyMiddleMan
Submission for [ETHGlobal Waterloo 2023 Hackathon](https://ethglobal.com/showcase/mymiddleman-e0ps2). This poject is a web3 middleware application aimed to provide security to user transaction occurred on the blockchain. Using Tenderly to simulate and test a virtual transaction our product aims to guarantee 100% safe User transaction.
### Description
We act as a middleman, every communication that occurs between a user and the blockchain through a wallet ([MetaMask](https://metamask.io)) occurs through our platform. We insure each transaction is scam free by using a stable and versatile platform called Tenderly. Tenderly provides a simulation that runs the transaction on a virtual fork of the blockchain allowing the users to remove the barrier between a transaction and its execution.
### How it's Made
Firstly some of our tech stacks include `node.js`, `react`, and `web3` frameworks. We made a custom rpc server in `node.js` that is able to directly connect to `MetaMask` which for the sake of the hackathon connects to the `Sepolia` test net for development and testing purposes. Using the latest frameworks we received the data from `MetaMask` requests and send it directly to tenderly in the right format which simulates it in a forked blockchain. Next `tenderly` returns the results which we store in a database(`SQLite`) and it is inflected in a user interface on our website allowing the user to clearly analyze the impact of their transaction. Lastly, the User can click on the submit transaction button if they feel safe to commit the transaction given the result of the simulation.
### Prerequisities
- Have `Metamask` Account
- Make `Infura` account (will provide `0.5 ETH` for mock usage on forked blockchain)### How to Run
1. First clone the project
```
git clone https://github.com/allan7yin/middleManDapp.git
```2. Navigate to backend folder and install dependneices
```
npm install
```3. Configure environment variables in `.env`. To do so, will need to create account with [Tenderely](https://tenderly.co). Within [Tenderely](https://tenderly.co), create a project, create virtual fork of blockchain on testing network `Sepolia`. For that project, obtain `api key`, and place into `.env`.
4. Once configured, run application (default is port `3000`)```
npm start
```5. Navigate to frontend folder and install dependencies
```
npm install
```6. Run the fronend (default is port 3001)
```
npm run start
```Open `MetaMask` in your browser extension, and add the network as the backend server. By default the parameters are:
- `Network Name:` (your choice)
- `New RPC URL: http://localhost:3000`
- `Chain ID: 11155111` (since `Sepolia` test network is used)
- `Currency Symbol: ETH`