SuperCheckOut

SuperCheckOut application that allows a buyer to start STREAMING money to the seller. This enables the buyers to book items whose prizes are higher than their balance; giving them freedom to pay-per-second for those items--- we can take this like ESI - Equated Secondly Installme

Description

A checkout interface that uses the power of SuperFluid to pay-per-second on your orders, while directly transferring to the seller. Book your orders regardless of the amount of balance in your wallet. Pretty Cool right? As a buyer, I want to keep STREAMING to the seller and get the required service in return. Enabling me to book items whose prizes are higher than my balance similar to EMI - Equated Monthly Installments Giving me freedom to pay-per-second in ESI - Equated Secondly Installments. **provided the buyer will have enough balance in future to keep the stream flowing. Now the next thing from Equated monthly installment is Equated Secondly Installments.

SuperCheckOut showcase

How it's made

This project uses SuperFluid Protocol ,with OpenZeppelin Defender using following techstack :- React, Java script, TypeScript, Solidity, Hardhat, Sentinel, Autotask, Metamask. 1) I have leveraged the Constant Flow Agreement Functionality of the superfluid that starts the stream to the sellers. 2) I have used remix for development of my smart contract. It basically adds new Item from seller, adds new orders, handle callbacks and keep tabs of 4 entities - orders, items, buyers and seller. 3) Once the order is confirmed, stream is started to buyers. SuperCheckOut also starts streaming to all the sellers whose items were present in the buyers cart. This way the flows from buyers to sellers are started simultaneously. Not only that, once the buyers starts streaming, they will recieve shop token (reward tokens) that can be used on the SuperCheckOut app itself to buy stuff (this is a future goal.) 4) Now, the streams are started. But who will stop it? That's where openzeppelin comes into play. It checks all events and based on those decide which item to close. Currently, openzeppelin uses sentinel and autotask. Autotask is triggered every minute. Autotask then calls superCheckOut contract to stop the flows, based on the data stored. 5) The smart is contract is deployed on Ethereum Goerli. 6) For the frontend part, I applied a little hack. It basically fetches json from the fakestoreapi.com and provides images and item data (For the hackathon purpose.) For the future point of view, will fetching from using ipfs services with encryption.

Technologies used

MetaMaskRemixscaffold-ethSoliditySuperfluidTruffle