Skip to content
This repository was archived by the owner on Dec 3, 2021. It is now read-only.
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
58 changes: 58 additions & 0 deletions contracts/DadiAuction.sol
Original file line number Diff line number Diff line change
@@ -0,0 +1,58 @@
pragma solidity ^0.4.18;

contract DadiAuction {
address owner;
uint validTime;

mapping(uint => address) winners;
mapping(uint => uint) timeValidity;
uint numberOfWinners;
uint256 actualBid;

constructor() public {
owner = msg.sender;
validTime = now;
}

function bid() public payable {
if (validTime > now) { //if it's not a new auction
if (msg.value > actualBid) //if higher bidder
{
winners[numberOfWinners].send(actualBid);
winners[numberOfWinners] = msg.sender; //set the winner
actualBid = msg.value; //set the new value to be win
}
}
else
{
numberOfWinners ++; //increase index
validTime = now + 15 seconds; //set 15 sec time for auction
timeValidity[numberOfWinners] = validTime; //set it on the list
actualBid = msg.value; //set the current winning value
winners[numberOfWinners] = msg.sender; //set sender to winner
}
}

function controller() public view returns (address) {
if (timeValidity[numberOfWinners] < now){ //if the latest auction is not ongoing, return latest value
return winners[numberOfWinners];
}
else
{
if (numberOfWinners > 1)
{
return winners[numberOfWinners - 1]; //return previous winner
}
}
}

function total() public view returns(uint256){
require (msg.sender == owner);
return(address(this).balance);
}

function withdraw() public {
require (msg.sender == owner);
msg.sender.transfer(address(this).balance);
}
}
1 change: 1 addition & 0 deletions dadi
Submodule dadi added at b1d62d