Solidity safesub防止溢出
在Solidity中两个无符号整型数字相减结果如果为负则会溢出,很严重的问题。所以在做数字运算时可以用DSSafeAddSub来保证运算的安全。
pragma solidity ^0.4.21; import "github.com/oraclize/ethereum-api/oraclizeAPI.sol"; contract DSSafeAddSub {function safeToAdd(uint a, uint b) pure internal returns (bool) {return (a + b >= a);}function safeAdd(uint a, uint b) pure internal returns (uint) {require(safeToAdd(a, b));return (a + b);}function safeToSubtract(uint a, uint b) pure internal returns (bool) {return (b <= a);}function safeSub(uint a, uint b) pure internal returns (uint) {require(safeToSubtract(a, b));return (a - b);} } contract Uint_vs_Uint8 is usingOraclize,DSSafeAddSub{uint public uint_num;uint8 public uint8_num;string public str = "abc";uint public result = uint_num - uint8_num; // 2uint public uintVal = parseInt(str,2); // 0uint public sub;uint public safesub;function setUint_num() public {uint_num = 10;}function setUint8_num() public {uint8_num = 2;}function subFun() public {sub = uint8_num - uint_num; //溢出 115792089237316195423570985008687907853269984665640564039457584007913129639928 }function safesubFun() public {safesub = safeSub(uint8_num, uint_num); // 0 } }
转载于:https://www.cnblogs.com/huahuayu/p/8720112.html
Solidity safesub防止溢出相关推荐
- Solidity 安全:已知攻击方法和常见防御模式综合列表
目录 重入漏洞 漏洞 预防技术 真实世界的例子:DAO 算法上下溢出 漏洞 预防技术 实际示例:PoWHC和批量传输溢出(CVE-2018-10299) 不期而至的Ether 漏洞 预防技术 真实世界 ...
- solidity开发智能合约
文章目录 1 Solidity与智能合约 2 智能合约概述 3 以太坊简介 4 以太坊交互工具 5 开发环境搭建 5.1 remix在线编译器 5.2 搭建本地网络 5.2.1 安装本地remix-i ...
- 智能合约语言Solidity Solidity API
链客,专为开发者而生,有问必答! 此文章来自区块链技术社区,未经允许拒绝转载. 智能合约语言Solidity Solidity API Solidity 是以太坊智能合约编程语言,阅读本文前,你应该对 ...
- 智能合约语言Solidity 类型介绍
链客,专为开发者而生,有问必答! 此文章来自区块链技术社区,未经允许拒绝转载. 智能合约语言Solidity 类型介绍11 Solidity是以太坊智能合约编程语言,阅读本文前,你应该对以太坊.智能合 ...
- solidity智能合约开发简介
1.solodity简介 Solidity语言是一种以太坊智能合约高级编程语言,运行在以太坊(Ethereum)虚拟机(EVM)之上. Solidity语言是一种语法类似JavaScript的高级编程 ...
- 【译】Jumping into Solidity — The ERC721 Standard (Part 4)
在我上一篇文章中,我们开始编写ERC721合同. 在前三篇文章( 第1部分, 第2部分 , 第3部分 )中有很多序言和解释,所以我会假设你在家中玩耍并直接跳回到代码中. 照片由RémiJacquain ...
- 【译】Jumping into Solidity — The ERC721 Standard (Part 3)
到目前为止,在本系列中,我介绍了非易失性和ERC721的基础知识 ,然后介绍了标准接口及其中的一些要求 . 在本文中,我们将对我们的ERC721合同做出一些设计决定,并开始编写它. 贝拉儿NG在Uns ...
- 智能合约语言 Solidity 教程系列8 - Solidity API
这是Solidity教程系列文章第8篇介绍Solidity API,它们主要表现为内置的特殊的变量及函数,存在于全局命名空间里. <!-- more --> 写在前面 Solidity 是 ...
- solidity智能合约[7]-整型与运算
整型变量 整数是现实中处理最多的单位,在solidity中的整数类型有int和uint,int类型可以存储负数,uint类型只能够存储非负数. int类型:int8,int16,int24,int32 ...
最新文章
- L1-039. 古风排版
- cscript.exe自动启动解决方法分享
- Kubernetes探针踩坑记
- pom.xml配置文件配置jar(不用记,快速配置)
- Cloudera Manager 和 CDH 4 终极安装
- 【渝粤教育】国家开放大学2019年春季 8126-22T制药工程 参考试题
- 工大瑞普Dynamips如何保存交换机路由器配置
- 高等数学---用python求极限
- 经典面试题 Ipv4 和 Ipv6 是什么
- 计算机硬件大型作业报告,计算机硬件技术大作业报告 .doc
- java实现“进制转换-在线工具”
- 龙之信条服务器维护,不只是重启!《龙之信条:黑暗觉者》常见问题解决方案...
- Android Framework开发大揭秘!从小白到大佬的进阶之路
- 五星好评html编写,五星好评.html
- CommandArgument的一种用法
- Docker容器-------网络模式,数据卷和数据卷容器
- [ecshop 资料 ] 通联支付 wap 手机端 开发帮助中心 手机支付网关 帮助中心
- gateway 内存溢出问题_内存溢出和内存泄漏、产生原因以及解决方案
- 《Effective Java》读书笔记,flutter游戏开发
- 记一次蚂蚁金服的面试经历