![](https://img-blog.csdnimg.cn/20201014180756918.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
智能合约
IT学霸
这个作者很懒,什么都没留下…
展开
-
Solidity笔记11:合约2
1、库pragma solidity >=0.6.0<0.8.0;// 定义库library Search { function indexOf(uint[] storage data, uint _value) public view returns(int){ for (uint i = 0; i< data.length; ++i) { if (data[i] == _value) {原创 2021-09-28 17:31:19 · 7188 阅读 · 0 评论 -
Solidity笔记10:合约创建
函数中new一个合约对象返回,返回的是这个合约的地址。pragma solidity >=0.6.0<0.8.0;contract TestConstructor { address onwer; string name; constructor() public { onwer = msg.sender; name = 'nico'; } // 只有合约发起来才能修改名字 fu...原创 2021-09-27 19:32:28 · 9682 阅读 · 0 评论 -
Solidity-4:数组
1、数组的属性状态变量默认是storage2、定义memory数组uint[] memory temp;3、示例pragma solidity >=0.6.0<0.8.0;contract Array01{ // 声明 uint[5] fix; // 定长数组的声明 uint[] ufix; // 变长数组的声明 // 声明并初始化 uint[5] a = [1,2,3,4,5]; u...原创 2021-09-24 21:12:34 · 753 阅读 · 0 评论 -
Solidity笔记7:交易和内置对象2
1、货币单位2、时间单位3、solidity全局变量示例1:pragma solidity >=0.6.0<0.8.0;contract TestGlobalValue{ // 区块hash function getBlockHash() public view returns(bytes32) { // 不能获取当前块的hash,只能获取当前块之前的块的hash ...原创 2021-09-26 11:37:41 · 232 阅读 · 0 评论 -
Solidity笔记9:修改器
1、修改器用法pragma solidity >=0.6.0<0.8.0;contract TestModifier{ uint public a = 0; modifier myModifier() { a = 5; _; // 添加修改器的函数在执行时,函数代码被插入在这个位置执行。 a = 10; } // 添加修改器,callModifier函数调用后a=10原创 2021-09-26 19:05:58 · 287 阅读 · 0 评论 -
Solidity笔记8:函数
1、参数传递的2种方式pragma solidity >=0.6.0<0.8.0;contract TestFunctionArgument{ function testArgument(uint a, uint b) public pure returns(uint) { return a+b; } // 直接传递的方式 function testCallFunction() public pure returns(ui...原创 2021-09-26 17:21:51 · 207 阅读 · 0 评论 -
Solidity笔记6:交易和内置对象
转账的示例代码:pragma solidity >=0.6.0<0.8.0;contract TestTransaction{ // 账户的余额 function getBalance() public view returns(uint) { return address(this).balance; } // 外部账户的余额 function getBalance2(address _add...原创 2021-09-26 00:09:53 · 9334 阅读 · 0 评论 -
Solidity笔记5:2维数组
1、数组字面量函数返回值时数组字面量时,returns指定的返回值类型:1)必须指定长度;2)参数的类型必须要和数组字面量的类型保持一致。contract TestArrayValue { function arrayValue() public pure returns(uint8[3] memory) { return [1,2,3]; } function arrayValue2() public pure returns(int[3原创 2021-09-25 16:46:04 · 791 阅读 · 0 评论 -
Solidity-3:运算符和表达式
1、函数返回多个值用圆括号括起来返回就可以了。如下例子:2、幂运算a**b = a的b次幂3、++,--和c++的一样,分为前置+和后置+4、整数除法截断 function test4() public pure returns(uint8, uint8) { uint8 a = 10; uint8 b = 3; // 整形变量做除法运算时会发生截断,如果是整形字面量做除法则不会发生截断。 retur...原创 2021-09-24 14:56:27 · 888 阅读 · 0 评论 -
Solidity-2:变量
1、变量作用域状态变量:只要是合约中直接定义的变量;局部变量:除状态变量外,其它都是局部变量。2、数据类型3、整形4、定长字节类型-byte5、函数返回中中的变量名的作用pragma solidity ^0.6.0;contract TestBytes{ byte public _b1 = 's'; // returns后面加变量名和不加变量名是有区别的,如果不加变量名,在remix中调用这个函数后,返回值只有值而没有变量...原创 2021-09-24 01:12:20 · 113 阅读 · 0 评论 -
Solidity-1:智能合约介绍
1、合约文件后缀名为sol;2、是一种强类型的编程语言,变量必须先定义和赋值后再使用;3、一个简单的示例://版本号pragma solidity ^0.6.0;// 定义智能合约contract HelloWorld{ // 状态变量 string name = "nico"; // view修饰的函数表示只访问状态变量(区块链上的数据),不会消耗任何资源 function getName() public view returns(s..原创 2021-09-23 15:57:34 · 445 阅读 · 0 评论