Foundry教程|如何调试和部署Solidity智能合约
Foundry是一个Solidity框架,用于构建、测试、模糊、调试和部署Solidity智能合约。在这个Foundry教程中,我们将介绍以下内容。 - Foundry简介 [视频] - Foundry入门 - 使用Foundry的Hardhat - 使用 Solidity 测试…
欢迎所有爱好区块链技术的人加入。
CATEGORY
Ethereum-优秀转载Ethereum-开源推荐Ethereum-新手教程
共 253 篇
Foundry是一个Solidity框架,用于构建、测试、模糊、调试和部署Solidity智能合约。在这个Foundry教程中,我们将介绍以下内容。 - Foundry简介 [视频] - Foundry入门 - 使用Foundry的Hardhat - 使用 Solidity 测试…
刚看了篇文章,感觉还可以,分享一下,原文在此: tx.origin vs msg.sender. I have been recently playing ethernaut… | by David Kathoh | Medium 吃过亏的人肯定知道。 **msg.sende**…
EIP712 signatures can generated using the https://eth-account.readthedocs.io/en/stable/eth_account.html#eth_account.messages.encode_structur…
交易所作为web3世界的核心枢纽,托管着大量加密资产,其钱包管理关系到大量用户的资产安全,因此很有必要对其钱包管理系统研究学习一番。这里我整理了一篇个人从产品设计者视角的学习笔记,希望能够帮助到大家学习。 ## 交易所钱包系统组成 交易所钱包系统设计主要需要考虑到**安全性**和…
# EIP 1014: CREATE2 指令 | 作者 | 类型 | 分类 | 状态 | 创建时间 | | --------------- | --------------- | ---- | ----- | ---------- | | Vitalik Buterin | St…
这是解构系列另一篇。如果你没有读过前面的文章,请先看一下。我们正在解构一个简单的Solidity合约的EVM字节码。 我们已经走过了很长的路,不是吗?首先,我们理解了合约的创建时间和运行时字节码之间的区别;接下来,我们理解了来自任何调用或交易的执行入口是如何通过函数选择器被路由到…
这是解构系列另一篇。如果你没有读过前面的文章,请先看一下。我们正在解构一个简单的Solidity合约的EVM字节码。 在上一篇文章中,我们看到函数选择器在我们的BasicToken.sol合约中是如何充当枢纽作用。它位于合约的入口处,并将执行重定向到调用者想要运行的合约中的匹配函…
这是解构系列另一篇。如果你没有读过前面的文章,请先看一下。我们正在解构一个简单的Solidity合约的EVM字节码。 在上一篇文章中,我们发现有必要将合约的字节码分为创建时和运行时代码。在对创建部分进行了深入研究之后,现在是时候开始对运行时部分的探索了。 ## 运行时代码 如果你…
## 解构Solidity合约 #1 - 字节码 专栏 理解 EVM - 探究Solidity 背后的秘密 继续加入OpenZepplin 解构合约系列文章。 你在路上,开着你那辆罕见的、完全修复的1969年野马马赫1快速行驶。阳光照射在所有原始的、华丽的镀金轮辋上,闪闪发光。只…
有过合约开发经验的同学都可能知道的,以太坊中最昂贵的操作是存储数据(SSTORE)。所以大家也应该一直寻找方法来减少存储需求。让我们来探讨一个特别有用的方法:位图 注:在 Uniswap 的代码中,有很多使用位图来优化 gas 的技巧。 ## 如何实现一个简单的位图 假设我们想存…
## 思维导图 我把以太坊签名分为对消息签名与对交易签名,这两种签名都是基于ECDSA算法与流程,本章就让我们来搞清楚两种签名具体的内容。 ## 签名概述 签名的作用或目的? - 身份认证:证明你拥有地址的私钥; - 不可否认:确认你的确发布过该消息; - 完整性:确保信息没有被…
是时候用Hardhat EVM 替换ganache了,Hardhat EVM 是一个用于本地开发的以太坊网络,提供了更好的堆栈跟踪功能和console.log() 输出日志。 Hardhat EVM 是一个用于本地开发的以太坊网络,提供了更好的堆栈跟踪功能和console.log…
在2018年,我们(CheckMarx)曾对智能合约安全状况进行过初步研究,重点是Solidity编写的智能合约。 当时,我们根据公开的合约源代码(译者注:本文称之为已扫描合约,本文出现的 x% 是以此为基数)编写了最常见的10 个智能合约安全问题。 两年过去了该更新研究并评估智…
Solidity delegatecall (委托调用)是一个低级别的函数,其强大但棘手,如果使用得当,可以帮助我们创建 可扩展 的智能合约,帮助我们修复漏洞,并为现有的智能合约增加新的功能 Solidity delegatecall (委托调用)是一个低级别的函数,它允许我们在…
各种智能合约语言有自己的设计哲学,他们并非一样,这篇文章探索一下 Solidity、Cairo、Rust和Move的语言设计的权衡。 我相信一些智能合约新手甚至精通web2的开发者可能会好奇,如何选择第一门智能合约编程语言来学习。现在,有很多选择,如EVM的Solidity,St…
## 简介 在我们今天所知道和喜爱的区块链出现之前,默克尔树一直是密码学和计算机科学领域的一个方面。如今,我们开始慢慢看到它们在链上更频繁地被用于数据验证的目的。在这篇文章中,我将解释Merkle Trees如何在NFT(ERC-721)背景下实现代币白名单的目的,它们是如何提供…
Merkle树是区块链技术的基本组成部分。它是由不同数据块的散列组成的数学数据结构,用作块中所有交易的摘要。 它还允许对大量数据中的内容进行有效和安全的验证。此结构有助于验证数据的一致性和内容。比特币和以太坊都使用Merkle树结构。Merkle树也被称为哈希树。 从根本上说,M…
## 0.简介 在这个系列的教程中,我们将学习如何调试和逆向 EVM 智能合约。 你可能已经知道,当一个智能合约在区块链中没有被验证时,你无法读取它的实体代码,只有字节代码被显示。 问题是很难从字节码中完全 "反编译(de-compile)",以重建编译前的solidity代码。…
Solidity智能合约有关安全和代码质量标准的建议,在 BoringCrypto, Mudit Gupta, Runtime Verification, 和 ConsenSys Diligence 的工作基础上整理。 ## 常规审查方法 - 阅读项目的文档、规范和白皮书,了解智…
原文:https://roadmap.sh/blockchain