一个包含Infura使用、账户的创建、测试币的领取、合约的部署、合约的调用的完整教程
Solidity的transfer() 是不安全的。
如何将你的合约升级到Solidity 0.8?
当使用OpenZeppelin Upgrades编写可升级合约时,有一些在编写Solidity代码时需要记住一些注意事项。
使用OpenZeppelin升级插件部署的智能合约可以通过升级来修改代码,同时保留原合约地址、状态和余额。这让帮助我们为项目添加新功能,或修复在生产中可能发现的任何错误。
call()与delegatecall()的异同。在delegatecall()的情况下,我们需要关心字段变量的顺序
call()
delegatecall()
本文列出了 12 个优化合约字节码的 Solidity 编程技巧。
Solidity 0.7.0 所涉及的更新的概述
如何在Solidity中使用函数
引用类型,应明确指定数据位置
Solidity 数据存储如何工作?
开始在以太坊上编写智能合约
跟我学习 Solidity 第一篇
NEST预言机采用双边报价机制生成链上价格,质押双边资产来保证价格的准确性。是完全去中心化的链上价格生成机制。
由于在以太坊中的交易属性,在一笔交易中可以借出大量资金进行操作(不能超过gaslimit限制)。所以当各个交易平台有利差的时候可以进行套利(无风险套利),避免了准备大量资金。
减少智能合约的 gas 消耗的8种方法
以太坊 gas 成本居高不下,每个智能合约开发者都应该了解如何减少 gas 消耗。
本文探索了使用可迭代映射来实现排序列表。
通过链表来实现O(1) 复杂度的可迭代映射。
tx.origin (address):交易发送方(完整调用链上的原始发送方)由于是直接调用者,所以当处于 用户A->合约1->合约2 调用链下,若在合约2内使用msg.sender,得到的会是合约1的地址。如果想获取用户A,可以用tx.origin:交易的”始作俑者”,整个调用链的起点。
12 篇文章,-40 学分