标签: solidity
包含此标签的文章 "solidity".
solidity: 正确理解 immutable 关键字
Solidity 早在0.6.5 版本就引入了 immutable关键字。 immutable 可以认为是运行时常量,数据直接存储在已部署的字节码中,所以并不会占用存储槽。 官方博客这样解释其工作原理: 虽然常规状态变量以固定偏移量存储在存储中,但不可变变量的情况并非如此。相反,不可变数据直接存储在已部署的字节码中,即
solidity: bytes 强制类型转化为地址注意点
当 bytes32 转换为 address 时候,需要进行强制转换,通常有两种方式 第一种,转换为 bytes20 然后再转换为 address 第二种,转化为 uint160 再转换为 address 这两种方式看起来差不多,其实输出是不一样的。第一种会取前 20 字节,也就是后面数据截断;第二种是取后 20 字节,
selfdestruct 的两点重要的容易被忽视的逻辑
selfdestruct(address payable recipient) 的作用是销毁当前合同状态,将其资金发送到给定地址,在之前的 solidity 编译器中也叫做 suicide,因其带有负面意义改为 selfdestruct 其中有两点很重要的,而且很容易被忽视的 强制发送余额,不会执行 receive 函
Solidity 自定义错误类型
从 Solidity 0.8.4 开始,开始支持自定义错误。 231 中说明了在 Solidty 中 revert(string) 调用会被 ABI 编码成 Error(string) ,因为 string 动态数据的存在,会消耗大量的 gas 费用。 新的自定义错误使用类似与 event 的定义方式,使用 error
分享:我是如何为公司追回价值 8 百万人民币的虚拟货币的
几个月之前,钱包部门的同事和我说有一个 ERC20 Token 无法进行转账,转账交易发出去后是交易成功了但是余额没有变化,然后给我发了交易的 txid 让我来看看有没有解决办法。在 etherscan 上查看这个交易状态是成功的,但是并没有发出 ERC20 Transfer 事件,而是一个 RejectedPayme