EO bugs
定价两次-同一事件在确认前再次发生
pragma solidity ^0.4.;
contract TransactionOrdering {
uint256 price;
address owner;
event Purchase(address _buyer, uint256 _price);
event PriceChange(address _owner, uint256 _price);
modifier ownerOnly() {
require(msg.sender == owner);
_;
}
function TransactionOrdering() {
// constructor
owner = msg.sender;
price = ;
}
function buy() returns (uint256) {
Purchase(msg.sender, price);
return price;
}
function setPrice(uint256 _price) ownerOnly() {
price = _price;
PriceChange(owner, price);
}
}
改价失败-同一事件再次发生前就完成了流程
contract IOU{
// Approves the transfer of tokens
function approve(address _spender, uint256 _val) {
allowed[msg.sender][_spender] = _val;
return true;
}
// Transfers tokens
function transferFrom(address _from, address _to, uint256 _val) {
require(
allowed[_from][msg.sender] >= _val
&& balances[_from] >= _val
&& _val > 0);
balances[_from] -= _val;
balances[_to] += _val;
allowed [_from][msg.sender] -= _val;
return true;
}
}
多人支付,总量不足-异步调用的问题,没能区别总成交量=目前已经完成的成交量+已经允许,但还没有callback的成交量,忽视了后面这一部分(Improper Check on Ether)
contract Casino{
function bet() payable {
// make sure we can pay out the player
if (address(this).balance < msg.value * ) throw;
bytes32 oid = oraclize_query(...); // random
bets[oid] = msg.value;
players[oid] = msg.sender;
}
function __callback(bytes32 myid, string result)
onlyOraclize onlyIfNotProcessed(myid) {
if (parseInt(result) % == )
players[myid].send( bets[myid] * );
}
}
没有在异步调用时区别身份-异步调用的返回可能是打乱顺序的
contract CasinoAltered{
function bet() payable {
// make sure we can pay out the player
if (address(this).balance < msg.value * ) throw;
bytes32 oid = oraclize_query(...); // random
bets[oid] = msg.value;
players[oid] = msg.sender;
}
function __callback(bytes32 myid, string result)
onlyOraclize onlyIfNotProcessed(myid) {
if (parseInt(result) % == )
players[myid].send( bets[bets.size() -] * );
}
}
EO bugs的更多相关文章
- Common Bugs in C Programming
There are some Common Bugs in C Programming. Most of the contents are directly from or modified from ...
- POJ2096 Collecting Bugs
Time Limit: 10000MS Memory Limit: 64000K Total Submissions: 5090 Accepted: 2529 Case Time Limit: ...
- 【poj2096】Collecting Bugs
题目描述 Ivan is fond of collecting. Unlike other people who collect post stamps, coins or other materia ...
- 与你相遇好幸运,Mongodb客户端&BUGS
> Robomongo https://robomongo.org > 日常使用频率最高的客户端 存在BUG: 在 db.getCollection('xzq').find({" ...
- OAF 中的EO 和VO
EO :oracle.apps.fnd.framework.server.OAEntityImpl VO:oracle.apps.fnd.framework.server.OAViewRowImpl ...
- PL/SQL EO 设计与开发
1.INSERT 调用PL/SQL 去insert的时候,没有使用super(),此时应当自己创建callable statement: 调用checkErrors()方法在执行 callable s ...
- 【月末轻松篇】--- 那些奇葩的Bugs
不能说所有的bug都是纸老虎,但往往那种看似很奇葩的bug,导致的原因确实很简单,烦了你一段时间,找到真相又让你忍不住一笑.什么是奇葩的bug呢.我的定义是:代码逻辑都一样,但在A处是好的,到了B处就 ...
- 【POJ2096】Collecting Bugs 期望
[POJ2096]Collecting Bugs Description Ivan is fond of collecting. Unlike other people who collect pos ...
- CSS Bugs 解决方案
说明:本文档兼容性测试基础环境为:windows系统:IE6-IE10, Firefox6.0, Chrome13.0, Safari5.1, Opera11.51 Bugs及解决方案列表(以下实例默 ...
随机推荐
- Centos 7 安装 ELK 5.6.8 及基础的配置
下载 wget https://artifacts.elastic.co/downloads/elasticsearch/elasticsearch-5.6.8.rpm wget https://ar ...
- 第五次编程作业-Regularized Linear Regression and Bias v.s. Variance
1.正规化的线性回归 (1)代价函数 (2)梯度 linearRegCostFunction.m function [J, grad] = linearRegCostFunction(X, y, th ...
- Selenium及Headless Chrome抓取动态HTML页面
一般的的静态HTML页面可以使用requests等库直接抓取,但还有一部分比较复杂的动态页面,这些页面的DOM是动态生成的,有些还需要用户与其点击互动,这些页面只能使用真实的浏览器引擎动态解析,Sel ...
- springBoot整合jpa
https://blog.csdn.net/qq_35180973/article/details/82316438 总体来讲只是在service调用dao的时候用接口代替dao继承CrudRepos ...
- eclipse改jsp文件编码格式 统一设置
- docker daemon 配置代理
创建插件目录 sudo mkdir -p /etc/systemd/system/docker.service.d 编写proxy配置文件 #vim /etc/systemd/system/docke ...
- 用Tensorflow实现DCGAN
1. GAN简介 最近几年,深度神经网络在图像识别.语音识别以及自然语言处理方面的应用有了爆炸式的增长,并且都达到了极高的准确率,某些方面甚至超过了人类的表现.然而人类的能力远超出图像识别和语音识别的 ...
- vue数据变动监测
原文链接:https://blog.csdn.net/man_tutu/article/details/72148362 对象: 不能监测到: var vm = new Vue({ data:{ a: ...
- SpringBoot项目打成一个war包
springboot 带有内置Tomcat 服务器,可以直接将项目打包成jar运行,运行命令为: java -jar demo.jar 但是如果在需要把项目达成war包该怎么办呢?下面是将spring ...
- python多版本共存
根据环境变量的顺序调用python,pip等程序 将python.exe修改为python2.exe(或python3.exe)后可以通过不同的名字调用不同版本的python 注意修改Anaconda ...