init
This commit is contained in:
64
todofeed/backend-todofeed/contracts/TodoFeed.sol
Normal file
64
todofeed/backend-todofeed/contracts/TodoFeed.sol
Normal file
@@ -0,0 +1,64 @@
|
||||
pragma solidity 0.4.25;
|
||||
contract TodoFeed {
|
||||
|
||||
event TodoCompleted (uint256 indexed todoId, address owner, string title, bytes photo, uint256 timestamp);
|
||||
event TodoVerified (uint256 indexed todoId, address verifier);
|
||||
|
||||
TodoData[] public todoList;
|
||||
mapping(uint256 => TodoData) public todoMap;
|
||||
|
||||
struct TodoData {
|
||||
uint256 todoId; // Unique token id
|
||||
address owner;
|
||||
string title;
|
||||
bytes photo; // Image source encoded in uint 8 array format
|
||||
uint256 timestamp; // Uploaded time
|
||||
bool isVerified; // check if is verified, default false.
|
||||
address verifier; // verifier address
|
||||
}
|
||||
|
||||
function writeTodo(string title, bytes photo) public {
|
||||
uint256 todoId = todoList.length + 1;
|
||||
|
||||
TodoData memory newData = TodoData({
|
||||
todoId : todoId,
|
||||
owner : msg.sender,
|
||||
title : title,
|
||||
photo : photo,
|
||||
timestamp : now,
|
||||
isVerified: false,
|
||||
verifier: address(0)
|
||||
});
|
||||
|
||||
todoList.push(newData);
|
||||
todoMap[todoId] = newData;
|
||||
|
||||
emit TodoCompleted(todoId, msg.sender, title, photo, now);
|
||||
}
|
||||
|
||||
function verifyTodo(uint256 todoId) {
|
||||
todoMap[todoId].isVerified = true;
|
||||
todoMap[todoId].verifier = msg.sender;
|
||||
|
||||
emit TodoVerified(todoId, msg.sender);
|
||||
}
|
||||
|
||||
function getTotalTodoCount () public view returns (uint) {
|
||||
return todoList.length;
|
||||
}
|
||||
|
||||
function getTodo (uint todoId) public view
|
||||
returns(uint256, address, string, bytes, uint256, bool, address) {
|
||||
require(todoMap[todoId].todoId != 0, "Todo does not exist");
|
||||
return (
|
||||
todoMap[todoId].todoId,
|
||||
todoMap[todoId].owner,
|
||||
todoMap[todoId].title,
|
||||
todoMap[todoId].photo,
|
||||
todoMap[todoId].timestamp,
|
||||
todoMap[todoId].isVerified,
|
||||
todoMap[todoId].verifier);
|
||||
}
|
||||
|
||||
|
||||
}
|
||||
Reference in New Issue
Block a user