solidity 错误】的更多相关文章

官方文档: https://solidity.readthedocs.io/en/develop/control-structures.html#error-handling-assert-require-revert-and-exceptions require和assert方法的区别: https://ethereum.stackexchange.com/questions/15166/difference-between-require-and-assert-and-the-differe…
solidity版本 0.7.5 Member "transfer" not found or not visible after argument-dependent lookup in address solidity 0.5,address地址类型细分为 address和 address payable,只有 address payable可以使用 transfer(), send()函数,例如: address public owner ==> address payab…
这是Solidity教程系列文章第9篇介绍Solidity 错误处理. Solidity系列完整的文章列表请查看分类-Solidity. 写在前面 Solidity 是以太坊智能合约编程语言,阅读本文前,你应该对以太坊.智能合约有所了解, 如果你还不了解,建议你先看以太坊是什么 欢迎订阅区块链技术专栏阅读更全面的分析文章. 什么是错误处理 错误处理是指在程序发生错误时的处理方式,Solidity处理错误和我们常见的语言不一样,Solidity是通过回退状态的方式来处理错误.发生异常时会撤消当前调…
航空航天尔雅 选择题1. 已经实现了<天方夜谭>中的飞毯设想.—— A——美国2. 地球到月球大约—— C 38 万公里3. 建立了航空史上第一条定期空中路线—— B——德国4. 对于孔明灯来说,最重要的是—— C——自重5. 世界公认的人类第一次重于空气的,有动力驱动的飞行器进行的载人飞行的空速是每小时—— B——46 公里6. 一战期间飞机使用的是双翼飞机—— B——双翼7. 航空业才逐渐兴起—— B——(一次世界大战后)8. 德国制造了第一架喷气式飞机—— D——德国9. 美国实现了人类…
1.报错: Expected token Semicolon got 'eth_compileSolidity' funtion setFunder(uint _u,uint _amount){ 解决: funtion关键字错了,需要用function: 2.报错: Variable is declared as a storage pointer. Use an explicit "storage" keyword to silence this warning. Funder f…
在编译安装solidity的过程中遇见了一个很奇怪的问题 webthree-umbrella/libethereum/libethereum/Executive.cpp: In member function 'void dev::eth::StandardTrace::operator()(uint64_t, uint64_t, dev::eth::Instruction, dev::bigint, dev::bigint, dev::bigint, dev::eth::VM*, const…
写在前面 Solidity 是以太坊智能合约编程语言,阅读本文前,你应该对以太坊.智能合约有所了解, 如果你还不了解,建议你先看以太坊是什么 这部分的内容官方英文文档讲的不是很透,因此我在参考Solidity官方文档(当前最新版本:0.4.20)的同时加入了深入分析部分,欢迎订阅专栏. 数据位置(Data location) 在系列第一篇,我们提到 Solidity 类型分为两类: 值类型(Value Type) 及 引用类型(Reference Types), 前面我们已经介绍完了值类型,接下…
写在前面 Solidity 是以太坊智能合约编程语言,阅读本文前,你应该对以太坊.智能合约有所了解, 如果你还不了解,建议你先看以太坊是什么 本文前半部分是参考Solidity官方文档(当前最新版本:0.4.20)进行翻译,后半部分对官方文档中没有提供代码的知识点补充代码说明(订阅专栏阅读). 数组(Arrays) 数组可以声明时指定长度,也可以是动态变长.对storage存储的数组来说,元素类型可以是任意的,类型可以是数组,映射类型,结构体等.但对于memory的数组来说.如果作为public…
第一章:智能合约简介 粗略地翻译了 Ethereum 的智能合约开发语言的文档:Solidity.欢迎转载,注明出处. 有任何问题请联系我,本人微信:wx1076869692,更多详情见文末. 我是 JoiT,coding monkey .最早做 web 开发,用 .net mvc 和 python flask/DJango,后来做微信公众号和小程序开发,现在探索区块链领域,研究 ETH.NEO.EOS(EOS目前还处于 ETH 的公链上)三个比较主流的大佬,有个人项目,暂时还未开源.我也投资股…
这是Solidity教程系列文章第8篇介绍Solidity API,它们主要表现为内置的特殊的变量及函数,存在于全局命名空间里. 写在前面 Solidity 是以太坊智能合约编程语言,阅读本文前,你应该对以太坊.智能合约有所了解, 如果你还不了解,建议你先看以太坊是什么 欢迎订阅区块链技术专栏阅读更全面的分析文章. Solidity API 主要表现为Solidity 内置的特殊的变量及函数,他们存在于全局命名空间里,主要分为以下几类: 有关区块和交易的属性 有关错误处理 有关数学及加密功能 地…
智能合约开发用solidity编程语言部署在以太坊这个区块链平台,本文提供一个官方实战示例快速入门,用例子深入浅出智能合约开发,体会以太坊构建去中心化可信交易技术魅力.智能合约其实是"执行合约条款的计算机交易协议".区块链上的所有用户都可以看到基于区块链的智能合约. 维基上说智能合约(英语:Smart contract )是一种旨在以信息化方式传播.验证或执行合同的计算机协议.智能合约允许在没有第三方的情况下进行可信交易.这些交易可追踪且不可逆转.智能合约概念于1994年由Nick S…
在Linux环境下入门写一段solidity编译遇到error和warning,经过一番研究后才得其缘由,下面以一段demo总结一下. pragma solidity ^; // 指定所需的编译器版本 contract clac{ function multiply(uint a, uint b) returns (uint){ return a + b; } } 看似很正常的一段两数相加代码,可惜编译出错: 出现了一段error和一段warning $ solc --bin testContr…
在上一张我们学习了Truffle项目的创建,部署等相关内容,今天我们就来实战一下. 今天我们要做3件事: 1) 学习搭建一个Solidity IDE(Remix). 2) 使用这个Solidity Ide编写一份智能合约. 3) 在我们前面第1,2,3章中部署的私有网络节点集群中部署这个合约,并能够在不同的节点中调用这个合约. Remix,是一个Solidity开发语言的Ide, 它是一款运行在浏览器端的solidity ide,也是官方推荐使用的ide. 另外还有其它的solidiy ide,…
合约安全增强: 溢出和下溢 什么是 溢出 (overflow)? 假设我们有一个 uint8, 只能存储8 bit数据.这意味着我们能存储的最大数字就是二进制 11111111 (或者说十进制的 2^8 - 1 = 255). 来看看下面的代码.最后 number 将会是什么值? uint8 number = 255; number++; 在这个例子中,我们导致了溢出 — 虽然我们加了1, 但是number 出乎意料地等于 0了. 下溢(underflow)也类似,如果你从一个等于 0 的 ui…
solidity函数修饰符 view  没有改变任何值或者写任何东西.只能读取,不能修改 function sayHello() public view returns (string) { } pure 函数不访问应用里的数据 第11章: Keccak256 和 类型转换 //6e91ec6b618bb462a4a6ee5aa2cb0e9cf30f7a052bb467b0ba58b8748c00d2e5 keccak256("aaaab"); //b1f078126895a14245…
solidity高级理论(二):Gas 关键字:Gas.结构体.节省小技巧 Gas是什么 在Solidity中,用户想要执行DApp都需要支付一定量的Gas,Gas可以用以太币购买,所以,用户每次使用DApp都会发费以太币. 一个 DApp 收取多少 gas 取决于功能逻辑的复杂程度.每个操作背后,都在计算完成这个操作所需要的计算资源,(比如,存储数据就比做个加法运算贵得多), 一次操作所需要花费的 gas 等于这个操作背后的所有运算花销的总和. 由于运行你的程序需要花费用户的真金白银,在以太坊…
学习文档笔记:http://solidity-cn.readthedocs.io/zh/develop/layout-of-source-files.html 1.pragma solidity ^0.4.0;这样,意味着源文件将既不允许低于 0.4.0 版本的编译器编译, 也不允许高于(包含) 0.5.0 版本的编译器编译(第二个条件因使用 ^ 被添加) 2.导入import * as symbolName from “filename”;//或“.sol”文件等同于import "filen…
在这里使用cryptoPunks为实例来进行solidity的介绍,一般这些内容理解了就能够进行相对简单的智能合约的编写了,同时会添加一些我认为也十分重要的内容学习文档为http://solidity-cn.readthedocs.io/zh/develop/layout-of-source-files.html ()pragma solidity ^0.4.0;这样,意味着源文件将既不允许低于 0.4.0 版本的编译器编译, 也不允许高于(包含) 0.5.0 版本的编译器编译(第二个条件因使用…
前言: 在使用solidity写智能合约的时候,会使用到revert和require来进行断言,比如: require(tokenOwner[tokenId] == 0x0,'this is not the first create'); 在上面的断言中,只有当你满足了tokenOwner[tokenId] == 0x0这个 条件,你才能继续往下执行,否则就会报错“this is not the first create”. 然后当我们使用remix这个编译器的时候,是能够在出错的时候得到rea…
web3.js编译Solidity,发布,调用全部流程(手把手教程) 下面教程是打算在尽量牵涉可能少的以太坊的相关工具,主要使用web3.js这个以太坊提供的工具包,来完成合约的编译,发布,合约方法调用的一整个流程.一方面来了解以太坊开发到底需要什么,另一方面来对web3.js的API有个基本的了解.由于所有其它工具都或多或少的是对web3.js的底层函数的包装,所以对web3.js使用流程有个认识之后,也能更好的入门,使用相关的工具. http://web3.tryblockchain.org…
以太坊智能合约介绍,Solidity介绍 一个简单的智能合约 先从一个非常基础的例子开始,不用担心你现在还一点都不了解,我们将逐步了解到更多的细节. Storage contract SimpleStorage { uint storedData; function set(uint x) { storedData = x; } function get() constant returns (uint retVal) { return storedData; } } 在Solidity中,一个…
一.固定长度的数组(Arrays) 1.固定长度类型数组的声明 pragma solidity ^0.4.4; contract C { // 数组的长度为5,数组里面的存储的值的类型为uint类型 uint [5] T = [1,2,3,4,5]; } 2.通过length方法获取数组长度遍历数组求总和 pragma solidity ^0.4.4; contract C { // 数组的长度为5,数组里面的存储的值的类型为uint类型 uint [5] T = [1,2,3,4,5]; //…
映射是一种引用类型,存储键值对.它的定义是:mapping(key => value),概念上与java中的map,python中的字典类型类似,但在使用上有比较多的限制. 一.mapping定义 在mapping中, key可以是整型.字符串等基本数据类型,但不能使用动态数组.contract.枚举.struct,以及mapping这些类型. value 的类型没有限制,甚至使用一个mapping作为value也是允许的. pragma solidity ^0.4.24; contract M…
一.结构体定义 结构体,Solidity中的自定义类型.我们可以使用Solidity的关键字struct来进行自定义.结构体内可以包含字符串,整型等基本数据类型,以及数组,映射,结构体等复杂类型.数组,映射,结构体也支持自定义的结构体.我们来看一个自定义结构体的定义: pragma solidity ^0.4.4; pragma solidity ^0.4.0; contract SimpleStruct{ //学生 struct Student{ string name; int num; }…
字符串:需要使用双引号""或者单引号''括起来,例如:定义一个字符串变量:string name="jake":string字符串不能通过length方法获得长度. 一.十六进制数据 以关键字hex打头,后面紧跟用单或双引号包裹的字符串.如hex"001122ff".通过下面的例子来理解下是什么意思: pragma solidity ^0.4.4; contract HexLiteral{ function test() returns (str…
Solidity中如何判断mapping中某个键是否为空呢? 一.比较标准的做法是建立一个专门和value相关的结构体,用一个布尔型变量来看是否这个key所对应的value被赋过值 代码如下: pragma solidity ^0.4.19; contract UserTest { struct User{ string name; bool isVaild; } mapping(address => User) public users; function addUser(string _na…
原文地址:石匠的blog Truffle的环境安装在前文已经整理,这次用Solidity在Truffle写一个HelloWorld以太坊智能合约,并在testrpc上进行测试.当前的软件版本信息如下: Truffle v4.1.11 (core: 4.1.11) Solidity v0.4.24 (solc-js) 项目创建 打开Mac的terminal终端,创建一个新目录,并truffle项目初始化. > mkdir HelloWorld > cd HelloWorld > truff…
1 功能 这里我们使用在线编译器,打开网址 https://ethereum.github.io/browser-solidity 1.1 文件夹管理 最左边是文件夹管理,里面列出了当前工作区里的文件,remix可以支持从本地文件夹读取文件. 1.2 工作区 正中间是工作区,工作区上半部是代码编辑区,在这里可以写solidity合约. 下半部是日志区,在执行智能合约时,会显示transaction相关的信息.在输出日志的时候还可以查看Details和Debug信息. 1.3 功能区 最右边的是功…
基于浏览器的Solidity 如果你只是想尝试一个使用Solidity的小合约,你不需要安装任何东西,只要访问 基于浏览器的Solidity http://remix.ethereum.org/. 如果你想离线使用,你可以保存页面到本地,或者从 http://github.com/chriseth/browser-solidity 克隆一个. NPM / node.js 这可能安装Solidity到本地最轻便最省事的方法. 在基于浏览器的Solidity上,Emscripten提供了一个跨平台J…
一个简单的智能合约 先从一个非常基础的例子开始,不用担心你现在还一点都不了解,我们将逐步了解到更多的细节. Storage contract SimpleStorage { uint storedData; function set(uint x) { storedData = x; } function get() constant returns (uint retVal) { return storedData; } } 在Solidity中,一个合约由一组代码(合约的函数)和数据(合约的…