![](https://img-blog.csdnimg.cn/2019091813595558.png?x-oss-process=image/resize,m_fixed,h_224,w_224)
智能合约
文章平均质量分 71
智能合约(英语:Smart contract )是一种旨在以信息化方式传播、验证或执行合同的计算机协议。
CamphorBloom
本科在读大学生
展开
-
Solidity之abi.encode各编码方法使用
在 Solidity 文档中描述为:“ABI 是与以太坊生态系统中的合约交互的标准方式。既来自区块链外部,也用于合约之间的交互”。合约内部函数和事件的编码规范。原创 2022-12-15 18:08:46 · 2982 阅读 · 0 评论 -
Solidity地址支付方法Send、Transfer和Call的使用
在solidity编写中,可以通过三种方式发送以太币。即transfer()、send()和call()。在这篇文章中,让我们讨论每个函数调用是如何工作的,以及哪个是最好的使用方法。原创 2022-12-14 11:20:14 · 3155 阅读 · 0 评论 -
Cannot connect to the remixd daemon. Please make sure you have the remixd running in the background.
检查remixd是否是最新版本:命令行输入 remixd -v 连接失败,弹出警示框:解决办法:remixd -s ./ --remix-ide http://remix.ethereum.org尝试将https改为http方式连接,并保持后台运行,不要关闭。在浏览器访问http://remix.ethereum.org/就能够正常共享本地文件了。...原创 2022-03-05 10:29:24 · 1613 阅读 · 0 评论 -
【solidity】函数修饰器(Function Modifiers)
修饰符可用于以声明方式更改函数的行为。例如,您可以使用修饰符在执行函数之前自动检查条件。检查调用者权限// SPDX-License-Identifier: GPL-3.0pragma solidity >=0.7.0 <0.9.0;contract Owned { address public owner; uint256 public account; constructor() { owner = msg.sender;原创 2022-02-04 13:36:03 · 8213 阅读 · 2 评论 -
solidity-以太单位和全局可用变量
以太单位一个数字字面量可以采用 wei、gwei 或 ether 的后缀来指定 Ether 的子面额,其中没有后缀的以太数字被假定为 Wei。(gwei 是gasPrice常用单位) function test() public pure returns (bool, bool, bool) { return(1 wei == 1, 1 gwei == 1e9, 1 ether == 1e18); }后缀e的唯一效果是乘以十的幂次方,是1 ether = 1原创 2022-01-17 19:36:41 · 3866 阅读 · 0 评论 -
在Remix中运行合约JS脚本
Remix 接受 async/await 脚本来运行 web3.js 或 ethers.js 命令。脚本需要包装在一个自执行函数中。如下:// Right click on the script name and hit "Run" to execute(async () => { try { console.log('Running deployWithWeb3 script...') const contractName = 'St原创 2022-01-09 12:37:44 · 4917 阅读 · 1 评论 -
solidity之函数参数和返回变量
函数接受有类型的参数作为输入,并且可能与许多其他语言不同,也可以返回任意数量的值作为输出。(英文好的小伙伴可参考原汁原味官方文档)函数参数函数参数的声明方式与变量相同,未使用的参数的名称可以省略。例如,如果你想让合约接受一种带有两个整数的外部调用,你可以使用如下方法:// SPDX-License-Identifier: GPL-3.0pragma solidity >=0.4.16 <0.9.0;contract Simple { uint sum; fun原创 2021-11-27 16:17:20 · 4677 阅读 · 0 评论 -
solidity之数组字面量
数组字面量(Array Literals),是以一个逗号分隔的列表,包含一个或多个表达式,用方括号括起来([…])。例如[1,a, f(3)]。数组字面量的类型确定,它总是一个静态大小的内存数组,其长度为表达式的数量。数组的基类型是列表中第一个表达式的类型,以便所有其他表达式都可以隐式地转换为它。在下面的例子中,[1,2,3]的类型是 uint8[3] memory,因为这些常量的类型都是uint8。如果您希望结果是一个uint[3] memory 类型,您需要将第一个元素显式转换为uint。原创 2021-11-27 14:08:00 · 3423 阅读 · 2 评论 -
Remix Warning: This looks like an address but has an invalid checksum
今天在调试一段solidity中address类型方面的合约:// SPDX-License-Identifier: UNLICENSEDpragma solidity >0.5.0;contract quiz_addr { address public myAddress = 0xfbbe31cb73d23ae79771157c2bb7c45cce7c1e18; function setAddress(address _addr) public returns (addr原创 2021-11-26 21:28:32 · 1777 阅读 · 2 评论 -
Solidity之DelegateCall委托调用详解
前言在编写以太坊智能合约代码时,有些情况下(功能的解耦,分区明确)我们需要与其他合约进行交互。如果只是为了代码复用,可把公共代码单独抽离出来,部署到一个library中(类似util工具包),后面就可以直接引入使用了。但是library中不允许定义任何storage类型的变量,这就意味着library不能修改合约的状态。如果需要修改合约状态变量,我们就需要另外部署一个新合约,具体怎么操作呢?贴个官方文档说明:There exists a special variant of a message原创 2021-11-25 11:29:18 · 5316 阅读 · 0 评论 -
Solidity - Fallback Function探究
目录事件起因问题描述问题分析问题探究事件起因项目实训内容中涉及fallback函数,被我的专业老师(兼高级工程师=_=)出难题了,当时他只留下了一句话,“这就是你们和我的差距!”(藐视<-<),随后我便通宵达旦,好好研究了一番......问题描述为什么需要fallback函数,它究竟起什么作用? 合约中只有fallback函数,如何进行调用测试? receive函数必须写吗?什么情况才会调用?(0.6.x引入)问题分析带着这些让人头皮发麻的q原创 2021-11-05 15:54:37 · 777 阅读 · 0 评论 -
Solidity 系列教程
Solidity是一种面向合约的高级编程语言,用于实现智能合约编写。Solidity深受 C++、Python 和 JavaScript 的影响,针对以太坊虚拟机 (EVM)而设计。翻译 2021-10-04 22:55:09 · 834 阅读 · 0 评论