solidity IDE下载地址 https://pan.baidu.com/s/1cY8VgDqB9Wt9VzK-Nocbyw

代码案例:

pragma solidity ^0.4.0;
//创建合约的时候,点的那个地址就是合约本身的地址
contract TollStation{ //构造器 存储车库车辆信息
struct CarInfo{
address _carAddr;//车主账户地址
string _lisencePlateNumber;//车牌号
uint _intime;//车辆进入时间
} //定义数组
CarInfo[] public car;
address addre;//合约地址 //合约的创建(构造器): payable(收钱)
function TollStation() public {
addre = msg.sender;
} //添加数据
function addData() payable{
car.push(CarInfo(msg.sender,"云A1123", now));
} //判断用户是否存在
modifier carExist{ bool contain;
for(uint i = 0;i<=car.length-1;i++)
{
if(msg.sender == car[i]._carAddr){
contain = true ;
} }
require(contain);//判断contain的值,如果不存在,则不继续执行
_;
} function account() public payable carExist returns (uint adr) { uint beforeTime; //取出当前账户的时间,然后用系统当前时间减去原来的时间 就可以计算需要扣除的金额
for(uint i = 0;i<=car.length-1;i++)
{
if(msg.sender == car[i]._carAddr){
beforeTime = car[i]._intime;
}
}
uint nowTime = now;
uint bal = nowTime - beforeTime;
if(bal<100000000){//小于1小时 扣除6wei
require(msg.value>0);
addre.transfer(6 ether);
emit Sent(msg.sender,"转账成功",msg.value);
}
else{
require(msg.value>0);
addre.transfer(10 ether);
emit Sent(msg.sender,"转账成功",msg.value);
}
return addre.balance;
} //事件 定义事件的作用就是可以在控制台输出和发送消息给客户端
event Sent(address addr,string msg,uint count); //查询数组
function queryCarData() returns(address addr,string str,uint time,uint size){
if(car.length<1){
return(0x323,"s",0,0);
}
else{
addr =car[car.length-1]._carAddr;
str = car[car.length-1]._lisencePlateNumber;
time = car[car.length-1]._intime;
size = car.length;
}
} function getLocalAddress() returns (address addr){
return this;
} function getTime() returns (uint now11){
now11 = now; return now11;//h获取系统时间 时间格式为12524208878 1524295087
}
}

(注意:require代码需要注释掉才可以)

下载了IDE后操作步骤如下:

1、解压后打开index.html,进入页面,复制代码,点击右侧的create,账户选择第一个。

2、切换账户,value值必须写,它主要是用于后面操作,就是车主进入车库多长时间,然后需要扣费多少,就是从value里面扣得,如果钱不够,交易失败。单位选择ether。

3、转账成功:

最新文章

  1. jboss jms 实例
  2. swift枚举
  3. Swift入门篇-字符串和字符
  4. 安装完最小化 RHEL/CentOS 7 后需要做的 30 件事情(四)码农网
  5. 使用gson-1.6.jar解析json
  6. HDU 5437 Alisha’s Party (优先队列模拟)
  7. Michael Kors成了时尚行业的公敌-股票频道-和讯网
  8. this web application instance has been stopped already.
  9. centos 打包RPM包 ntopng
  10. MySQL索引 - 索引的类型
  11. Python字符串详解
  12. 2017noip普及组赛前注意事项总结
  13. java之设计模式工厂三兄弟之简单工厂模式
  14. 从PRISM开始学WPF(番外)共享上下文 RegionContext-更新至Prism7.1
  15. ABP之模块系统
  16. 2018-2019-1 20189203《Linux内核原理与分析》第二周作业
  17. 安全运维之:Linux后门入侵检测工具的使用
  18. java集合进行排序的两种方式
  19. flaks___git
  20. spring 加载jar包中的配置文件

热门文章

  1. 解决nohup: 忽略输入并把输出追加到&quot;nohup.out&quot;或者nohup: 忽略输入重定向错误到标准输出端
  2. ocalhost kernel: [244840.301449] nf_conntrack: nf_conntrack: table full, dropping packet
  3. 基于端口划分vlan
  4. Linux创建RAID0_实战
  5. Linux useradd 命令介绍
  6. 通过Dapr实现一个简单的基于.net的微服务电商系统(十五)——集中式接口文档实现
  7. idea开发web项目框架失效和无法启动问题
  8. 90%的人都不知道的Node.js 依赖关系管理(下)
  9. Jmeter- 笔记7 - 服务器监控(ServerAgent配置)
  10. Selenium八种元素定位方法源码阅读