以太坊数据上链和展示智能合约

以太坊数据上链和展示智能合约

1. 首先定义上链数据的基本结构(推荐使用结构体)

2. 定义全局变量和判定的一些变量

3. 定义接受数据和展示数据的函数

4. 将数据传入,使用memory定义接受变量,保证数据上链

5. 展示函数将展示数据直接返回

pragma solidity ^0.4.13;



contract TimeProject {
	enum ProjectStatus { Open, Examing, Finshed }
	//enum ProductCondition { New, Used }

	uint public projectIndex;
	mapping (address => mapping(uint => Project)) examer;
	mapping (uint => address) projectIdInStore;
	
	
	//项目信息结构
	struct Project {
		uint id;
		string name;
		string category;
		//string imageLink;
		string when;
		string where;
		string description;
		uint price;
		uint demandNum;
		
		ProjectStatus status;
		//ProductCondition condition;
		
	}
	


	constructor() public {
		projectIndex = 0;
	}
	//添加项目信息上链
	function addProject(string _name, string _category,string _when, string _where, string _description, uint _price, uint _demandNum) public {
		require(_price>0,"The price is too low!");
		projectIndex += 1;
		Project memory project = Project(projectIndex, _name, _category, _when, _where, _description,_price,_demandNum, ProjectStatus.Open);
		examer[msg.sender][projectIndex] = project;
		projectIdInStore[projectIndex] = msg.sender;
	}
	//查询展示链上项目信息
	function getProject(uint _projectId) view public returns (uint, string, string, string, string, string, uint, uint, ProjectStatus) {
		Project memory project = examer[projectIdInStore[_projectId]][_projectId];
		return (project.id, project.name, project.category, project.when, project.where, project.description, project.price, project.demandNum, project.status);
	}
	

}
  • 1
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值