本文介绍了Solidity中的两种复杂数据类型:结构体(Struct)和映射(Mapping)。结构体用于创建自定义数据类型,类似于面向对象编程中的类,而映射则类似于字典,用于存储键值对。文章通过代码示例详细解释了它们的用法,并结合一个账户管理的智能合约,展示了如何在实际应用中同时使用结构体和映射,最后还简单介绍了storage, memory, calldata。
本文介绍了Solidity中的继承概念,包括如何使用is关键字实现合约继承。文章详细讲解了virtual和override关键字在函数重写中的作用,以及internal关键字在控制函数可见性方面的应用。最后,通过OpenZeppelin的Ownable合约示例,展示了继承在实际开发中的应用,例如权限控制。
is
virtual
override
internal
本文详细介绍了Vyper编程语言,在智能合约开发中的安全性和简洁性,强调了其设计原则与核心特性。通过比较Vyper和Solidity,指出Vyper在安全优先和易审计性方面的优势,同时提供了安装Vyper的步骤和最佳实践,适合需要高安全性的区块链项目开发者。
前言借用维塔利克·布特林的观点:大家对硬件钱包高估了,相对于硬件钱包,多签钱包更加安全.本文快速实现一个简洁版的多签钱包合约。多签钱包定义:一种需要多个私钥签名才能完成交易的加密钱包,需要多个授权方共同签名才能执行交易。这种设计大大提高了钱包的安全性,降低了单点故障和私钥被盗的风险;工作
本文探讨了在Solidity智能合约中缺失或不当输入验证所可能导致的安全漏洞,强调了适当输入验证的重要性,以及如何通过编写安全代码来降低风险。文章详细介绍了编译时和运行时的输入验证,影响与案例分析,提供最佳实践指导,帮助开发者提高智能合约的安全性。
前言ERC4626标准是对ERC20标准的扩展,旨在提供统一的API标准,本文通过对ERC4626标准的实现一个保险金库的智能合约;ERC4626标准定义:ERC4626是ERC20的扩展,提供了一个标准API,用于表示单个底层ERC-20代币的收益保险库份额;举例说明:用
前言本文分别采用默克默克尔树和数字签名两种方式给nft合约添加白名单,对比两者的优缺点,本文包含了合约的开发,测试,部署全流程。基础概念默克尔树:也称为哈希树,是一种树形数据结构,主要用于数据验证和同步,默克尔树的特点是每个非叶子节点是其子节点的哈希值,而叶子节点存储的是数据或数据的哈希
前言本文借鉴uniswapv2实现一个简化版的去中心化交易所的智能合约,交易所的核心恒定乘积自动做市商(CPAMM)去中心化交易概念以及特征去中心化交易:在没有中心化中介机构的情况下进行的交易活动;特征:去中心化控制:所有交易都是通过区块链上的智能合约自动执行,避免了中央机构的操控
前言本文主要依托于openzeppelin库实现一个ERC1155标准的代币,包含了合约的开发,测试,部署以及和ERC20标准,ERC721标准的区别和使用场景分析。ERC20、ERC721、ERC1155标准特点ERC20标准:同质化、可分割性、标准化、兼容性、流通性;ERC721
前言本文实现一个简单版的NFT交易所,主要包含上架、下架、更新价格、购买NFT等相关功能NFT合约说明关于NFT合约的开发、测试、部署具体实现,可以查看另一篇:快速实现一个标准的NFT合约(实操篇)NFT交易所合约合约说明具备上架、下架、更新价格、购买NFT//SPDX-Licen
前言本文借助openzeppelin库编写一个标准的NFT合约,从开发,测试,到部署上链全部流程。注意:ERC20标准的同质化代币和ERC721标准的非同质化代币的区别需要metadata,要把信息上传到ipfs上,文中会有详细操作的步骤;同质化代币和非同质化代币程序层面的区别ERC2
前言本文主要实现标准代币的空投合约和代币水龙头相关业务场景的实现,包含合约的编写,测试,部署全流程。概念以及相关场景说明空头合约:币圈中一种营销策略,项目方将代币免费发放给特定用户群体;代币水龙头:一种为用户提供小额加密货币的机制;标准代币说明:本合约基于openzeppelin库实
本文介绍了如何在Solidity中调用另一个智能合约的函数,通过部署两个合约(Counter.sol和Interface.sol)并演示它们之间的交互,展示了智能合约的复用性和交互方式。
本文详细介绍了在Solidity中使用Q格式表示定点数的方法,包括Q数的定义、表示方式、转换方法以及在Solidity中的实际应用示例。文章还对比了Q数与以太坊中的十进制表示,指出了Q数在乘除运算中的高效性。
Cyfrin的Aderyn VS Code扩展为Solidity智能合约开发提供实时的安全分析,能够检测超过100种漏洞。该扩展集成了内联诊断、树状视图、自动监控等功能,使开发者能够在编码过程中保持对安全的关注,保护其代码隐私。
在过去的三年里,Foundry已发展成为智能合约开发者的首选工具,今天,我们自豪地宣布 Foundry v1.0
本文解析了 Creation Code,包括 Init Code、Runtime Code 和 Constructor Parameters,并通过空合约示例展示了 Solidity 编译器生成字节码的过程,重点对比了 payable 和 non-payable 构造函数的区别及元数据的处理。
本文收集了10个常见的Solidity面试问题,旨在帮助求职者准备Solidity技术面试。这些问题不仅适合潜在的Solidity开发者自我测试,也可供招聘经理用以评估应聘者的技能水平。每个问题都提供了示例答案和简要解释,以帮助读者理解其重要性。
本文介绍了如何创建、部署和测试符合EIP-2535标准的Diamond智能合约,使用了diamond-1-hardhat库和louper.dev工具,详细说明了所需的项目设置和代码编写过程,适合对智能合约开发有一定了解的读者。
本文介绍了Brownie框架,该框架是一个Python基础的智能合约开发和测试工具。虽然Brownie目前不再积极维护,建议用户转向Ape框架。文章详细说明了项目的安装、使用和部署过程,包括创建项目目录、安装依赖、设置网络和账户、获取测试ETH以及部署合约的完整步骤,适合对智能合约开发感兴趣的Python开发者。
扫一扫 - 使用登链小程序
487 篇文章,588 学分
193 篇文章,525 学分
412 篇文章,378 学分
128 篇文章,335 学分
58 篇文章,310 学分