Skip to content

Instantly share code, notes, and snippets.

@ArslanKathia
Created February 26, 2023 11:05
Show Gist options
  • Save ArslanKathia/81f81268d5603a2dd69f27afcda0e8c9 to your computer and use it in GitHub Desktop.
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=
//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