Solidity-call、delegatecall

solidity

  

2019-06-08 15:57:23

前言: 合约发布工具及版本:mist v0.9.3 一:call、delegatecall call delegatecall 可以调用已部署的合约中的方法 call与delegatecall对比简析 相同之处 (1)调用时会将本合约所有可用的gas传输过去 (2)执行失败均返回false 不同之处 (1)call可以使用.value传ETH给被调用合约 (2)假设在contract_test合约...

前言: 合约发布工具及版本:mist v0.9.3 一:transfer发送以太币到指定地址 transfer替代掉了send 二:实例 发布合约时,向此合约存入2个以太币,如下图: 合约发布成功后,使用此合约,执行senddemo方法,向指定address发送1个以太币,如上图配置,执行结果如下图,可以看到此合约还剩1个以太币:...

Solidity-自毁

solidity

  

2019-06-08 16:15:23

前言: 合约发布工具及版本:mist v0.9.3 一:自毁 selfdestruct(address recipient): 销毁当前合约,并且把当前合约的余额发送指定地址 二:实例 发布合约时,赋给此合约1个以太币,发布成功后,可以看到此合约拥有一个以太币: 如上图,执行Kill方法,并指定一个address;执行后,当前合约将被销毁,当前合约的1个以太币将被发送至这个指定的address。如...

Solidity-继承

solidity

  

2019-06-08 16:16:27

前言: 合约发布工具及版本:mist v0.9.3 一:继承 使用“is”去继承一个合约,子类可以访问父类的除private限制的属性和方法。 包括internal方法和变量,注意:不可以使用‘this’来访问。 构造函数参数传递 二:实例 发布合约后,执行C方法的结果如下图:...

Solidity-通过new创建合约

solidity

  

2019-08-02 19:27:33

前言: 合约发布工具及版本:mist v0.11.0、mist v0.9.3 一:通过new创建合约(Creating Contracts via new) 合约可以使用new关键字创建新合约。必须事先知道要创建的合约的完整代码,因此递归创建依赖(recursive creation-dependencies)是不可能的。 二:实例 正如在这个例子中所看到的,创建D的实例时使用.value()可以...

mapping可以翻译成映射,其实它本身就是创建一种映射关系,而且是单向的,比如下面的代码: 我们在Remix里编译一下,没有报错: 下面是部署合约的账户: 函数update的返回值: 这里可以看出,二者是一致的。...

Solidity Types 布尔(Booleans) bool: 可能的取值为常量值true和false。 支持的运算符: ! 逻辑非 && 逻辑与 || 逻辑或 == 等于 != 不等于 备注:运算符&&和||是短路运算符,如f(x)||g(y),当f(x)为真时,则不会继续执行g(y),在f(x)&&g(y)表达式中,当f(x)为false时,...

地址Address 以太坊钱包地址位数验证 以太坊中的地址的长度为20字节,一字节等于8位,一共160位,所以address其实亦可以用uint160来声明。 我的以太坊钱包地址为0xDF12793CA392ff748adF013D146f8dA73df6E304,0x代表十六进制,我们将DF12793CA392ff748adF013D146f8dA73df6E304拷贝,如下图所示,将其进行二进...

String字符串 案例 字符串可以通过""或者''来表示字符串的值,Solidity中的string字符串不像C语言一样以\0结束,比如'goddreamwt'这个字符串的长度就为我们所看见的字母的个数,它的长度为10。 备注:string字符串不能通过length方法获取其长度。 固定大小字节数组(Fixed-size byte arrays) 固定大小字节数组可以通过 b...

truffle framework初体验 - 如何编写智能合约 使用solidity语言撰写智能合约 Ethereum上的智能合约需要使用solidity语言来撰写。虽然还有其他能用来撰写智能合约的语言如Serpent(类Python)、lll(类Fortran),但目前看到所有公开的智能合约都是使用solidity撰写。 宣传上说,solidity是一种类似Javascript的语言,而且围绕着...

智能合约是“不可变的”。一旦部署,它们的代码是不能更改的,导致无法修复任何发现的bug。 在潜在的未来里,整个组织都由智能合约代码管控,对于适当的安全性需求巨大。过去的黑客如TheDAO或去年的Parity黑客(7月、11月)提高了开发者们的警惕,还有很长的路要走。 常见的 Solidity 的漏洞类型: Reentrancy - 重入 Access Control - 访...

启动testrpc 打开终端,启动testrpc 代币合约的基本概念 代币合约扮演的角色相当于银行的角色。使用者在代币合约中,用自己的以太币帐户地址当作银行帐户,可以透过代币合约执行转账(transfer,将代币由一个帐户转到另一个帐户),查询余额(balanceOf,查询指定帐户中拥有的代币)等原本由银行负责的工作。因为合约部署在公开区块链上,所有的交易都是公开透明,可供检验的。 创建代币合约项...

You may as well be bold to love someone, to climb a mountain,to chase your dream. 你不妨大胆一些,爱一个人,攀一座山,追一个梦。 安装所需工具 首先开发机上必须装好Node.js,再使用以下命令安装所需的工具 创建项目 编写投票Dapp智能合约 在contracts文件夹下创建Voting.sol文件,将下面的代码拷...

Solidity值传递 Solidity引用类型(storage/memory) Solidity值类型与引用类型 也许对于很多有开发经验的童鞋来说,大家会以为Solidity语法非常简单,其实不然,Solidity还是存在很多和其他语言不一样的坑,下面是Solidity的相关语法细节以及注意事项。 先来看看有哪些类型属于值类型,哪些属于引用类型。 值类型(Value Type) 值类型包含: 布...