本文讨论了智能合约开发者如何优化合约bytecode大小,避免达到24.576 kb的限制。文章强调了在Solidity智能合约中使用库的重要性,通过代码重用、减小合约大小、易于维护和提高安全性来最小化合约bytecode大小,并建议避免将库函数声明为internal visibility,而应使用public,以保持库函数独立并优化bytecode大小。
本文介绍了 ERC-6909 提案,该提案旨在通过移除批量操作和回调函数来降低 Gas 成本和复杂性,同时保留了类似于 ERC-1155 的多代币标准。文章还提供了一个使用 ERC-6909 创建游戏物品代币合约的例子,展示了如何利用扩展来添加小数位数以及如何进行代币的铸造和转移。
在solidity中一旦出现异常,则当前交易将会回滚(即相当于没有发生过,除了你的gas被消耗了)。solidity里抛出异常的方法有三种:errorrequireassert对于可能出现异常抛出的地方,solidity也提供了try-catch方法进行异常捕获处理。
solidity
在Solidity编程里,address(this)、tx.origin和msg.sender是3个常用的与地址相关的语句,下面详细介绍一下它们的区别。
在大多数应用中,使用列表相当简单。大多数语言都提供用于处理列表的库,我们不必担心使用细节。但是,智能合约不同于“大多数应用程序”,我们需要特别注意区块链施加的设计限制。
本文介绍了 ERC20 token 合约,它可以跟踪同质化代币,即任何一个代币与任何其他代币完全相等。文章通过一个 GLDToken 的示例,展示了如何使用 OpenZeppelin Contracts 创建自己的 ERC20 token 合约,并讨论了 decimals 字段的用途,以及如何使用 preset ERC20 合约。
开坑使用Hardhat闯关Ethernaut CTF题,提高合约和测试脚本的能力,后续也会增加Paradigm CTF的闯关题目。
透明代理vsUUPS:智能合约升级模式全景解析与实用指南随着区块链技术的不断发展,智能合约的升级能力成为项目长期发展的关键需求。其中,透明代理(TransparentProxy)和UUPS(UniversalUpgradeableProxyStandard)是两种主流的升级模式。本文
可以清晰地了解,当作入门认识,因为深入的话会牵扯到很多底层的东西,这里提到的一点点这作为了解这两个方法的辅助
solidity智能合约一旦部署便不可更改,但是通过特定的设计觅食可以实现“升级”的效果。
有时Solidity语言本身的数据结构无法很好地满足开发需求,此时我们需要实现相关库。本文介绍一个双向链表的库合约,在其它合约中引入即可使用。
solidity - 继承(Inheritance)
以太坊「链下随机数」(off-chainrandomness),指的是不在链上生成,而是由链外系统(如预言机节点)生成,并最终提交到链上使用的一种随机数生成方式。它是为了解决链上无法安全生成真正随机数的问题而提出的:https://learnblockchain.cn/shawn_shaw
本文档介绍了 OpenZeppelin Contracts 的发布计划和 API 稳定性保证。OpenZeppelin Contracts 遵循语义化版本控制,旨在每个月发布一个新的小版本,每几个月或一年发布一个新的主版本。API 稳定性意味着如果你的项目今天可以正常工作,它将继续这样做。新的合约和功能将在小版本中添加,但仅以向后兼容的方式添加。
BSN简介区块链服务网络(Blockchain-basedServiceNetwork)是一个跨云服务、跨门户、跨底层框架,用于部署和运行各类区块链应用的基础设施网络,2020年4月25日启动商用。