以太坊在内部实现了一个基于栈的虚拟机,我们称之为EVM(Ethereum Virtual Machine),用户所有的操作最终都会转化为操作码(OPCODE)然后在EVM中执行,下图为整个执行流程,目前我们对EVM的讲解不多,后续会陆续补上。
Solidity语言特性一图流
Human-Readable ABI 方式调用solidity 合约,go版。
这个代币标准被广泛称为ERC20,描述了智能合约中代币的接口。像代币转移、批准支出、创建等功能都由ERC20标准定义。
receive()payable里面尽量避免写代码,以免其他合约调用transfer不成功缘起:最近调试一段solidity代码,本来想测试在收款的时候,记录一个receive和发出一个log,哪个消耗gas更大如下图,我定义了两个contract,TestTransfer中的se
Web3数据索引新利器:用TheGraph打造NFT市场子图全攻略Web3浪潮席卷而来,区块链数据的查询与索引成为去中心化应用(dApp)开发的核心挑战。TheGraph作为Web3数据索引的“新利器”,以其去中心化协议和高效查询能力,彻底简化了NFT市场等场景下的数据处
ERC721是一种以太坊上的非同质化代币(NFT,Non-FungibleToken)标准,用于表示唯一的、不可替代的数字资产。它利用了唯一的tokenId来确定每一个NFT代币,每个NFT的合约中管理着一批类似的但每个都是不同的代币:https://learnblockchain
Solidity允许多重继承,包括多态性。
信标代理“信标代理”(BeaconProxy)是一种可升级合约的代理模式,主要特点是通过一个共享的“信标”(Beacon)来统一管理逻辑合约地址,适合部署多个实例共享同一个逻辑实现并且合约可升级的场景:https://learnblockchain.cn/shawn_shaw
以太坊是一个公共网络,在设计合约的接口时,除了考虑己方的交互外,还应该考虑公众是否方便获取到合约中的数据。
NFT 所有者 tokenID 快速查询
初学solidity的一些笔记
本文探讨了Solidity编程语言的学习难度,尽管语言本身与JavaScript等类似,快速上手可能性高,但深入理解以太坊环境及一些独特特性如gas成本、I/O操作以及重入攻击等,则需要时间和经验。文章通过代码示例展示了常见的陷阱和挑战,强调了在掌握Solidity语言之后,还需大量实践才能精通以太坊生态系统。
开坑使用Hardhat闯关Ethernaut CTF题,提高合约和测试脚本的能力,后续也会增加Paradigm CTF的闯关题目。
作为一种编程语言,Solidity与Java、JavaScript和Cpp等更常见的语言有许多相似之处。然而,有很多特性是Solidity独有的,库 就是其中之一。