随笔分类 - Solidity智能合约
区块链中用Solidity来写智能合约部分
摘要:函数 回退函数 写法一:发送主币 fallback() external {} 特点:外部可视,可接受主币发送,调用合约中不存在的函数,就触发该回退函数的逻辑 如果想让该函数可以直接发送主币,需要加上“payable”例如: fallback() external payable{} 写法二:只接受
阅读全文
摘要:ETC支付 首先建立一个合约,并设置一个函数用来定义部署者的地址,用“payable”来修饰,之后 address payable public owner; //定义合约部署者地址 constructor(){ owner = payable (msg.sender); } function de
阅读全文
摘要:新建函数,并确定返回值 function New1() public pure returns(uint,bool){ return (98,true); } function New2() public pure returns (uint x,bool b){ return(5,false);
阅读全文
摘要:两者都是用于异常处理的语句中,都需要满足条件才可以进行其他操作。类似于”if()" 对于”assert()“ 该关键字常用于结尾处用来,为了防止发生任何非常糟糕的事情 检查溢出(上溢出或者下溢出) 检查不变量 更改后验证状态 预防永远不会发生的情况 如果使用则将消耗掉所有剩余的gas,并恢复所有的操
阅读全文
摘要:建立一个函数例: function testRequire(uint i) external pure { require(i<=10,"i>10"); //一个判断条件,如果不符合逗号前的则输出逗号后的 } 如果想通过输入数据来判定则 function testRevert(uint256 i)
阅读全文
摘要:类似于Java中的多态,也是子继承父,孙继承父再继承爷。重写部分方法。 关键字: virtual //父类 override //子类 对于父类合约中的函数,在函数性质定义完之后可以加上“virtual“的关键字,这样代表这个函数到子类合约中需要被重写 contract JCA{ //充当父合约 f
阅读全文
摘要:先定义一个事件 event Log(string message,uint vall); 然后规定一个函数来调用它 function example()external { emit Log("foo",123); //触发事件: "emit 事件名(信息);",按定义好的数据类型输出括号内的信息
阅读全文
摘要:定义: enum 名{ None, //第一个是默认值 Penfing } 再用枚举名定义一个公开的变量 Status public status; 然后 function get() external view returns (Status){ return status; } function
阅读全文
摘要:类似于C语言中的“struct”例如: struct Car { //定义一个名为Car的结构体 string name; uint age; address owner; }; 此时如同定义了一个名为“Car”的数据类型可用来定义数据 //以结构体为类型来定义一些变量 Car public car
阅读全文
摘要:修改 先写两个函数 function add() external { require(!paused,"paused"); count+=1; } function dele() external { require(!paused,"paused"); count-=1; } 可见两个函数中有都
阅读全文
摘要:在该语言中条件判断与循环跟常规语言类似 条件判断: function foo(uint256 x) external pure returns (uint256) { if (x < 10) { return 0; } else if (x < 20) { return 1; } else { re
阅读全文
摘要:函数修饰符 定义一个函数例如: function add(uint x,uint y) external pure returns (uint){ return x+y; } 其中“external”指该函数为外部读取函数,在合约外访问时用“external”,合约内部调用该函数是需要用“this.
阅读全文
摘要:ps:文档网站:http://solidity-by-example.org 编译网站:http://remix.ethereum.org 首先在“contracts”文件中建立一个用来储存项目的文件,在项目文件中新建文件,取个名字,系统自动补齐后缀“sol” 然后开头写上 // SPDX-Lice
阅读全文