本文深入浅出地讲解了Solidity语言中的面向对象编程(OOP)概念,包括类(合约)、实例、继承和封装,通过生动的类比(如汽车蓝图)和代码示例,解释了这些概念在Solidity中的应用,并探讨了如何在实际的Web3场景中使用这些OOP概念来构建模块化、安全、可扩展的智能合约,最后提供了一个练习仓库地址。
Ethers 是一个用于与以太坊区块链进行交互的 JavaScript 库。它提供了一套简洁且功能强大的工具,用于处理以太坊账户、交易、智能合约等诸多方面的操作。无论是开发去中心化应用(DApp),还是进行区块链相关的工具开发如钱包等,Ethers 都扮演着重要的角色。
solidity的数据类型非常重要,这篇文章主要介绍数据类型那些必须知道的知识点,不清楚的同学可以一看究竟。
在以太坊等区块链网络中,Gas是执行智能合约操作所需支付的费用,Gas优化能够降低交易成本并提升合约执行效率。这篇文章主要讲述5个方面总结常用的优化方法。
在以太坊智能合约开发里,低级别调用(Low-levelcalls)和高级别调用(High-levelcalls)是两种不同的合约交互方式,对新手小白来说这可能是一个陌生的概念。这篇文章我们来详细说一下他们的概念及应用。
本文是30天Solidity学习系列的第1天,主要介绍了Solidity是什么,以及为什么要学习Solidity。Solidity是一种用于在以太坊虚拟机(EVM)上编写智能合约的静态类型、高级编程语言。学习Solidity可以用于DeFi、NFT、DAO、游戏等领域的开发,并且Solidity开发者有很高的市场需求。
本文是Solidity入门教程的第二天内容,主要讲解如何搭建Solidity的开发环境,包括安装MetaMask钱包,使用Remix IDE,以及可选的Hardhat本地开发环境。并通过一个简单的Hello Web3合约示例,演示了合约的编写、编译和部署过程,以便读者快速上手Solidity智能合约开发。
本文介绍了如何使用Solidity编写一个简单的智能合约,该合约能够在以太坊区块链上存储和检索数据。文章通过一个SimpleStorage合约的例子,讲解了状态变量的声明、set和get函数的编写,以及如何在Remix IDE中部署和交互该合约。
SimpleStorage
set
get
本文介绍了Solidity中的变量(包括状态变量、局部变量和全局变量)、数据类型(如uint、bool、address、string等)以及函数的概念和常用修饰符(public、private、view、pure等)。并通过一个简单的MyProfile合约示例,演示了如何存储和更新名称,以及如何返回当前名称。文章还提供了一个小挑战,鼓励读者创建一个新的智能合约。
Web3开发必知:Solidity内存布局(Storage、Memory、Stack)解析在以太坊智能合约开发中,Solidity的内存布局是确保合约高效运行的核心。理解Storage(存储区)、Memory(内存区)和Stack(栈)三种存储位置的特性与用途,不仅有助于优化gas成本,还能提升合
OpenZeppelin是一个广泛使用的、开源的智能合约库,专门为以太坊等EVM兼容链提供安全、可复用的合约组件。它是构建去中心化应用(DApp)和协议时的“黄金标准”不论你是初学者还是Web3开发老,OpenZeppelin都是一个非常不错的选择整体架构OpenZeppelin
Web3新速度:Monad与BuyEarthDApp重塑虚拟世界Web3时代,速度决定未来!Monad作为一款高性能的以太坊兼容L1区块链,以每秒10,000+的交易处理速度(TPS)突破传统区块链瓶颈,为去中心化应用(DApp)开辟了新天地。BuyEarthDApp是这一技术的生动实践,让用
Solidity的存储结构简介以太坊智能合约有三种数据存储位置
本文总结了Solidity智能合约开发中常见的五个陷阱,包括存储、内存和calldata的区别,重入攻击,默认public的可见性,使用tx.origin进行授权的风险,以及无限循环/高Gas成本问题。针对每个问题,文章都给出了具体的代码示例和修复方案,旨在帮助开发者构建更安全、更智能的智能合约。
CREATE2是以太坊的一条EVM指令,用于部署智能合约。与传统的CREATE指令不同,CREATE2允许通过计算得到合约地址,而不是依赖发送方的nonce。这种方式使得合约地址在部署之前就可以被预测,方便一些高级用例,例如「工厂模式」和「合约钱包的预部署地址」。
本文介绍了Circom中定义Rank 1约束系统(R1CS)的基本语法,包括模板参数的使用、循环和变量的声明与应用、以及如何在满足特定条件时生成约束。此外,还强调了在Circom中约束必须是静态的,不能依赖于信号动态改变,但变量可以作为常量参与R1CS运算,并解释了if语句在Circom中的使用限制,着重介绍了 variables 的使用方法,以及 signals 的使用限制。
if
玩转Web3:用Viem库实现以太坊合约部署与交互想一窥Web3开发的奥秘?以太坊智能合约是通往区块链世界的大门,而Viem库让你轻松迈出第一步!本文通过一个TypeScript脚本,带你从连接本地以太坊测试网到部署合约、实现交互,全程手把手实战。不管你是Web3新手还是想探
Ethers.js实战:带你掌握Web3区块链开发Web3时代已来,区块链开发成为技术圈的热门技能。如何快速上手与以太坊交互?Ethers.js作为一款轻量又强大的工具,能帮你轻松搞定查询、交易和智能合约部署。本文通过一个实战脚本,带你一步步掌握Web3区块链开发的核心技能,无论你是
Web3新星:Monad打造NFT全解Web3浪潮席卷而来,高性能区块链成为开发者的新宠。作为Web3生态的新星,Monad以10,000TPS的超高吞吐量、500毫秒的区块速度和1秒交易确认,重新定义了区块链的可能性。本文将带你走进Monad的世界,通过打造Mo
Monad、MegaETH 和 Pharos 之间的竞争本质上没有绝对的领先者,留给开发者更多的权衡在于性能、去中心化还是专业化的优先级
扫一扫 - 使用登链小程序
114 篇文章,705 学分
388 篇文章,475 学分
67 篇文章,425 学分
118 篇文章,352 学分
162 篇文章,344 学分