Created
February 26, 2023 11:05
-
-
Save ArslanKathia/81f81268d5603a2dd69f27afcda0e8c9 to your computer and use it in GitHub Desktop.
Created using remix-ide: Realtime Ethereum Contract Compiler and Runtime. Load this file by pasting this gists URL or ID at https://remix.ethereum.org/#version=soljson-v0.8.17+commit.8df45f5f.js&optimize=false&runs=200&gist=
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| //SPDX-License-Identifier: MIT | |
| pragma solidity ^0.8.0; | |
| contract Ecommerce{ | |
| address payable public seller; | |
| address payable public buyer; | |
| uint public price; | |
| bool public isPaid; | |
| bool public isDelivered; | |
| constructor(address payable _seller,uint _price){ | |
| seller = _seller; | |
| price = _price; | |
| } | |
| function buy() public payable{ | |
| require(msg.value == price,"Incorrect amount is sending.."); | |
| require(!isPaid,"Item already Paid"); | |
| buyer = payable(msg.sender); | |
| isPaid = true; | |
| } | |
| function confirmDelivery() public{ | |
| require(msg.sender == buyer,"only buyer can confirm the delivery"); | |
| require(isPaid,"Item must be paid first"); | |
| isDelivered = true; | |
| seller.transfer(price); | |
| } | |
| function getBalance() public view returns(uint){ | |
| return address(this).balance; | |
| } | |
| } |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment