Foundry

Foundry

微信扫码分享
Videcoding: 本地部署Uniswap V2与Launchpad

Videcoding: 本地部署Uniswap V2与Launchpad

视频 AI 总结: 本期视频围绕在本地部署 Uniswap V2 的实战过程展开,重点讲解如何将 V2 的旧代码(Core 和 Periphery)迁移到当前使用 Foundry 的项目中,并利用 AI 自动修改编译器版本、修复关键函数(如 Create2 计算地址)以及编写测试。视频还详细阐述了一个 Launchpad 合约的设计逻辑:通过一级市场的 Mint 和二级市场的 Uniswap 池子实现代币发行与自由交易,帮助开发者理解如何在项目中集成 DEX。 关键信息: 1. 本地部署 Uniswap V2 需处理两个代码库(Core 和 Periphery),并解决编译器版本(0.4/0.5)与当前 Foundry 环境(0.8.24)不兼容的问题。 2. 用 AI 可以自动升级编译器版本、修改关键字和依赖库(如 Create2 计算地址),并生成测试用例(如添加流动性、兑换)。 3. Launchpad 合约的核心:用户通过 Mint 按设定价格购买代币,其中 5% 的 ETH 和 5% 的代币自动添加到 Uniswap 池子提供流动性,剩余 95% 归发行方;后续可在二级市场自由交易。 4. 开发时建议本地部署 Uniswap 合约(而非使用链上 Fork),以获得更快的测试和调试体验。 5. 强调不能完全依赖 AI,开发者需通过实际动手经历来真正掌握知识。

26 0 0 2026-06-12 08:25
Foundry 实用技巧

Foundry 实用技巧

视频 AI 总结: 1. 视频核心内容:讲解使用Foundry工具进行智能合约开发时的部署、测试、开源验证等实用技巧。重点介绍了通过环境变量读取助记词/私钥简化部署命令,推荐主网使用keystore增强安全性,演示了部署时自动记录合约地址、利用cast进行链上交互,并强调了部署后立即开源合约的重要性,避免后期因代码变更导致验证困难。 2. 关键信息: - 避免在命令行输入私钥或密码,可通过环境变量(ENV)加载助记词或私钥。 - 主网上推荐使用keystore(`--keystore`参数)部署,更安全;测试时可使用私钥或助记词。 - 配置命令行别名(如`local`)或RPC URL环境变量可让命令更简洁。 - 部署后建议单独保存合约地址(如写入JSON文件),方便后续交互。 - 合约开源原理:将源代码与编译选项发送给区块链浏览器,浏览器重新编译后比对部署时的字节码,匹配则开源成功。 - 推荐在部署合约时直接使用`--verify`参数自动开源,避免后期修改代码导致验证困难。 - 使用`cast`命令可进行查看余额、转账、调用函数等交互操作。 - 作业:为Bank合约编写测试(含分叉模拟),并练习部署ERC20 Token到Sepolia测试网。

29 0 0 2026-05-20 10:19
使用 Foundry 进行合约测试

使用 Foundry 进行合约测试

视频 AI 总结: 视频主要讲解智能合约测试的重要性及基于 Foundry 框架的测试方法。测试开发时间通常是编写的 2-3 倍,需覆盖所有分支及边界条件。利用 AI 可快速生成更全面的测试用例。核心工具包括 console.log 调试、单元测试、模糊测试、不变量测试和分叉测试,并强调 gas 优化及 gas snapshot 对比。详细介绍了 cheat codes(如 prank、deal、expectRevert、expectEmit)模拟账户、余额、区块、时间戳等场景,以及使用 Tenderly 或 cast 命令进行链上交易重放调试。 关键信息: - 测试时间占比高,需覆盖正常与异常分支。 - AI 辅助测试可提升全面性,测试用例比代码更重要。 - 本地调试用 console.log(仅本地环境),链上调试可用 Tenderly 或 cast 交易重放。 - 单元测试:以 test 开头,无状态,每次独立。Forge Test 命令支持 match 筛选和 verbose 日志输出。 - Gas 报告:关注平均/中位数 gas,利用 gas snapshot 和 diff 对比优化前后消耗。 - 模糊测试(Fuzz):随机输入验证健壮性,可用 bound 限定范围,结合 expect revert 处理异常。 - 不变量测试(Invariant):设定始终成立的约束(如总供应量不变),随机调用合约方法后验证。 - 分叉测试:基于主网/测试网状态创建本地分叉,依赖已部署合约(如 USDT、Uniswap)时使用。可在代码中用 vm.createFork 和 vm.selectFork 控制。 - Cheat codes 常用操作:模拟区块号/时间戳、设置余额(deal)、模拟调用者(prank/startPrank)、断言错误(expectRevert)、断言事件(expectEmit)。

114 0 0 2026-05-20 10:15
使用 Foundry 框架开发智能合约

使用 Foundry 框架开发智能合约

视频 AI 总结: 视频主要介绍了以太坊智能合约开发框架Foundry,相较于在Linux环境下的手动部署与测试,Foundry支持本地开发、AI结合编程、Git管理代码,并提供自动化测试和模拟功能。讲解了其核心工具Forge、Cast、Anvil的用法,包括项目初始化、编译、测试和部署流程,强调了使用Keystore加密存储私钥的安全性,并推荐用AI辅助操作。 关键信息: 1. Foundry是一个本地合约开发框架,支持编译、测试、部署,可结合AI编程和Git管理。 2. 使用Forge build编译、forge test测试(支持无状态和fuzz测试)、forge create/script部署。 3. Anvil可启动本地区块链节点模拟环境,提供测试账户。 4. 通过forge install可安装依赖库(如OpenZeppelin),使用Remapping简化路径。 5. 部署时推荐使用Keystore加密存储私钥,避免明文私钥暴露给AI Agent或命令行历史记录。

61 0 0 2026-05-19 09:31
VibeCodeing: 实现 Rebase 型代币

VibeCodeing: 实现 Rebase 型代币

视频 AI 总结: 本视频主要讲解了 **Rebase 型代币(Rebase Token)** 的实现原理与实际应用。通过复盘一个“年化通缩 1%”的编程作业,介绍了如何利用 Foundry 框架和 AI 工具生成代码,并深入分析了其核心逻辑:即通过调整全局系数(如总供应量)来改变所有持有者的余额,而无需修改每个人的底层份额(Shares)。最后,视频以 Lido 项目的 stETH 为例,解释了 Rebase 机制在流动性质押收益分配中的重要作用。 视频中提出的关键信息: 1. **Rebase 核心逻辑**:代币余额并非直接存储数值,而是通过“份额(Shares)”计算得出。公式通常为:`个人余额 = 个人份额 * (总供应量 / 总份额)`。 2. **通缩/通胀实现**:在 Rebase 过程中,合约通过调整 `totalSupply`(总供应量)来实现余额的同步增减,而用户的 `totalShares` 保持不变。 3. **代码实现建议**:在编写 Rebase 逻辑时,应注意 Gas 效率。相比于随时间累加的循环计算,基于常量的运算更具扩展性。 4. **AI 交互技巧**:在使用 AI 辅助编程时,提供明确的上下文(如框架名称、目录结构)至关重要;领域知识的储备比单纯的提示词技巧更重要。 5. **stETH 案例分析**:Lido 的 stETH 是典型的 Rebase 代币。它将以太坊 PoS 质押产生的奖励通过 Rebase 机制等比例分配给所有持有者,使用户持有的 stETH 数量随收益自动增加。 6. **流动性质押(LSD)**:介绍了 Lido 如何通过汇集小额 ETH 凑齐 32 ETH 进行节点质押,并利用 stETH 为质押资产提供流动性。

61 0 0 2026-04-10 09:06
VibeCoding:实现质押挖矿

VibeCoding:实现质押挖矿

视频 AI 总结: 本视频是一节关于智能合约开发的实战课程,重点讲解了如何实现一个“质押 ETH 产出 KK Token”的 Staking 合约。核心逻辑参考了 SushiSwap 的 MasterChef 算法,通过区块高度和质押份额动态计算奖励。视频演示了利用 AI 辅助编写代码的过程,包括 KK Token 的铸造权限管理、质押与解质押逻辑的实现,并强调了在解质押时自动结算奖励以优化用户体验,最后通过 Foundry 框架验证了多用户场景下的奖励分配准确性。 **关键信息:** 1. **业务逻辑:** 用户质押 ETH,合约根据质押数量和时长实时铸造(Mint)KK Token 作为奖励。 2. **权限管理:** KK Token 初始发行量为 0,Staking 合约必须被设置为 KK Token 的 Owner,才具备调用 `mint` 方法的权限。 3. **奖励算法:** 采用 MasterChef 经典模型,设定每个区块产出固定数量(如 10 个)的 Token,按质押比例分配。 4. **合约功能:** 实现 `stake`(质押)、`unstake`(提取本金)和 `claimReward`(领取奖励)三个核心接口。 5. **逻辑优化:** 建议在用户执行 `unstake` 时自动触发奖励结算与发放,避免用户需要手动多次操作,同时确保数据一致性。 6. **测试验证:** 使用 Foundry 进行测试,通过模拟区块推进(Roll)来验证单用户及多用户在不同权重下的收益分配是否符合预期。

53 0 0 2026-04-09 08:08
Foundry 智能合约测试 + AI 编写测试

Foundry 智能合约测试 + AI 编写测试

视频 AI 总结: 1. **核心内容概括:** 视频深入讲解了区块链智能合约测试的重要性,强调由于链上代码不可修改,部署前发现并解决问题至关重要。它介绍了Foundry测试框架的强大功能,包括验证函数预期、优化Gas消耗、调试日志、以及模拟EVM环境(如区块高度、时间戳、用户身份、账户余额)。视频还详细阐述了模糊测试(Fuzz Testing)、不变量测试(Invariant Testing)和分叉测试(Fork Testing)等高级测试方法,并多次强调AI在辅助生成和分析测试用例方面的巨大潜力,能显著提高测试效率。 2. **视频中提出的关键信息:** * **测试的重要性:** 链上代码不可修改,因此在部署前发现问题是核心。 * **测试目标:** 验证智能合约函数是否符合预期,关注事件触发,优化Gas消耗,进行调试。 * **调试手段:** 使用`console.log`进行本地日志调试;Tenderly可用于链上调试和交易模拟。 * **Foundry测试框架基础:** * 测试用例需继承`Test`,测试函数以`test`开头,每个测试用例独立无状态。 * 运行测试:`forge test`,`-v`显示详细日志,`--match-test`运行指定测试。 * Gas报告:`forge test --gas-report`,提供函数最小、平均、最大Gas消耗及调用次数。 * 快照:`forge snapshot`,用于生成快照文件以对比Gas变化。 * **EVM环境模拟工具(作弊码):** * `vm.roll()`:模拟区块高度变更,用于时间依赖逻辑。 * `vm.warp()`:模拟时间戳变更。 * `vm.prank()` / `vm.startPrank()` / `vm.stopPrank()`:模拟`msg.sender`,以不同用户身份执行操作。 * `vm.deal()`:重置指定地址的ETH余额。 * `vm.etch()`:加载指定存储槽的数据。 * `vm.env()`:读取环境变量。 * **断言机制:** * `vm.expectRevert()`:断言合约执行会失败(预期错误)。 * `vm.expectEmit()`:断言合约会触发特定事件。 * **模糊测试 (Fuzz Testing):** * 通过随机生成输入参数,测试函数在各种条件下的健壮性。 * 可指定参数范围和条件,默认运行256次。 * **不变量测试 (Invariant Testing):** * 模拟合约函数组合调用序列,验证在复杂操作下,合约的特定约束条件(如ERC-20总供应量不变)是否始终保持。 * **分叉测试 (Fork Testing):** * 在本地模拟主网或测试网的实时状态,用于测试与现有链上合约(如USDT、Uniswap)的交互。 * 可通过`forge test --fork-url`或`vm.createFork()`实现。 * **AI辅助测试:** 强调AI在生成测试用例、分析Gas报告、解决测试问题方面的强大辅助作用,能大幅提升开发效率。

98 0 0 2026-03-11 10:20
VibeCoding: 使用 Foundry 开发部署 Token 并开源

VibeCoding: 使用 Foundry 开发部署 Token 并开源

视频 AI 总结: **1. 核心内容概括 ** 视频主要对比了 Foundry 和 Remix 在智能合约开发中的优劣,强调 Foundry 在本地开发、大型项目管理和测试方面的显著优势。讲师详细介绍了如何利用 AI 辅助测试,大幅提升效率。随后,通过实际操作演示了使用 OpenZeppelin 和 Foundry 部署并开源一个 ERC20 代币(MyToken)到 Sepolia 测试网的全过程,包括安全部署、账户资金准备、合约验证以及与区块链交互的 `cast` 命令使用,并强调了开源对合约透明度和信任的重要性。 **2. 视频中提出的关键信息** * **Foundry 的优势:** 适用于本地开发、大型项目和复杂的测试场景,提供强大的测试框架和命令行工具,优于 Remix 在页面上进行小规模 Demo 开发的局限性。 * **AI 在测试中的应用:** AI 能高效分析代码分支和条件,显著减少测试时间(传统上测试时间是开发时间的 2-3 倍),提高测试覆盖率。 * **智能合约部署流程:** * 使用 OpenZeppelin 库快速开发 ERC20 代币(如 MyToken)。 * 强调使用 Keystore 进行安全部署,避免直接暴露私钥。 * 部署前需确保部署账户有足够的资金支付手续费。 * 通过 `forge verify` 命令将合约代码开源到区块链浏览器(如 Etherscan),需要配置 API Key。 * 开源合约能提高透明度和用户信任,因为代码逻辑清晰可见。 * **Foundry 命令行工具:** * `forge`:用于合约的编译、部署和验证。 * `cast`:用于与区块链进行交互,例如查询账户余额 (`cast balance`) 或调用合约函数 (`cast call`)。 * **故障排除与 AI 辅助:** 遇到错误时,应养成“万事不决问 AI”的习惯,利用 AI 解决开发中遇到的问题。 * **网络节点配置:** 部署合约需要指定目标网络的 RPC URL,可以通过 Chainlist 等网站获取。 * **安全性考量:** 强调私钥和 API Key 等敏感信息不应直接硬编码,应通过环境变量或 Keystore 等方式管理,以确保项目安全。

113 0 0 2026-03-11 10:08
Foundry:Solidity智能合约开发框架

Foundry:Solidity智能合约开发框架

视频 AI 总结: 视频主要介绍了 Foundry,一个用于 Solidity 智能合约本地开发的强大框架。它涵盖了 Foundry 的安装、项目初始化、合约编译、测试(包括模糊测试)以及部署的全流程。视频强调了 Foundry 在本地开发中的优势,如项目管理、测试框架集成,并详细讲解了账户安全管理(私钥、Keystore)、依赖安装(OpenZeppelin)和合约开源验证等关键实践。此外,还讨论了命令行工具对 AI 友好的趋势,以及在实际开发中提升效率和安全性的技巧。 视频中提出了哪些关键信息: 1. **Foundry 核心功能与优势:** * Foundry 是一个用于 Solidity 智能合约本地开发的脚手架和开发套件,相比 Remix 更适合复杂项目。 * 提供项目初始化、编译、测试和部署的全流程管理,且完全由 Rust 开发,速度快,测试框架优秀。 * 命令行工具对 AI 友好,是未来开发趋势。 2. **Foundry 主要组件:** * `Forge`: 用于合约开发全流程,包括初始化、编译、测试、部署。 * `Cast`: 用于与链交互,管理钱包。 * `Anvil`: 本地测试节点,提供测试账户和 RPC 服务。 3. **开发流程与命令:** * `forge init`: 初始化项目。 * `forge build`: 编译合约。 * `forge test`: 运行测试用例,支持 `setup` 初始化和模糊测试 (Fuzz testing),并显示 Gas 消耗。 * `forge create` / `forge script`: 部署合约,需准备有余额的钱包地址和 RPC URL。 * `--broadcast`: 实际广播交易。 * `--verify`: 用于合约开源验证。 4. **账户管理与安全性:** * 私钥、助记词明文暴露在命令行中极不安全,易被窃取。 * 推荐使用 Keystore 加密文件管理私钥,部署时输入密码解锁。 * `cast wallet new`: 创建新的 Keystore 钱包。 * 环境变量 (e.g., `ACCOUNT_PRIVATE_KEY`) 可用于本地测试,提高便利性,但安全性低于 Keystore。 5. **依赖管理:** * `forge install`: 安装外部库,如 OpenZeppelin。 * `remapping`: 将长路径映射为短别名,方便代码引用 (e.g., `@openzeppelin/contracts=lib/openzeppelin-contracts/contracts`)。 6. **合约开源与验证:** * 开源代码是建立信任、实现“无需信任”环境的关键。 * 链上只保存字节码,合约代码需通过区块链浏览器(如 Etherscan, Sourcify)进行开源验证。 * 验证过程:将代码、编译器版本、优化选项发送给浏览器,后台编译匹配链上字节码。 * 需申请 API Key 进行验证操作。 * 部署时使用 `--verify` 参数可同步开源,后期开源风险高。 7. **开发技巧:** * 保存合约地址:将部署的合约地址保存到 JSON 文件中,方便后续交互。 * 配置 RPC URL:在 `foundry.toml` 中配置 RPC 别名 (e.g., `local = "http://127.0.0.1:8545"`), 简化部署命令。 * `VM` (作弊码): Foundry 提供的 Solidity 语法扩展,用于文件操作、环境变量读取等,方便脚本编写。 8. **学习与实践:** * 强调动手实践的重要性,仅听课难以深入理解,建议提前预习并亲自操作 Foundry 工具。

181 0 0 2026-03-10 10:37
DeFi 安全 101 - 模糊测试

DeFi 安全 101 - 模糊测试

视频 AI 总结: 该视频主要讲解了如何使用模糊测试(Fuzzing)技术来发现智能合约中的安全漏洞,并将其优化成可利用的漏洞。演讲者分享了从最初的模糊测试失败,到最终发现并优化漏洞,实现高达 50,000 倍的利用的完整过程。核心在于利用状态模糊测试,结合 Foundry 工具,以及 Echidna 优化模式,对智能合约进行安全分析。 关键信息: * **状态模糊测试 (Stateful Fuzzing)**:通过尝试随机组合来改变合约状态,从而发现潜在漏洞。 * **Foundry 工具**:用于快速设置和使用模糊测试,但可能导致虚假的安全感,因为测试仅限于硬编码的操作序列。 * **Echidna 工具**:用于优化模糊测试结果,找到最大化漏洞利用的场景。 * **逐步升级 (Progressive Escalation)**:从简单的单元测试开始,逐步增加测试的复杂性,最终实现漏洞利用。 * **覆盖率报告 (Coverage Report)**:用于评估模糊测试的有效性,并指导测试方向。 * **真阳性与假阳性**:强调区分真正的漏洞和因不正确的测试属性导致的假阳性。 * **符号执行 (Symbolic Execution)**:用于快速验证属性是否可被破坏,但无法保证实际可利用性。 * **实际案例**:通过一个 Oracle 合约的例子,展示了如何使用这些技术发现并优化漏洞,最终实现高倍数的漏洞利用。

1383 0 0 2025-12-14 12:40
剖析 Curve V1 稳定币兑换

剖析 Curve V1 稳定币兑换

视频 AI 总结: 该视频是关于 Curve V1 AMM 的课程介绍,面向有 Foundry 经验的高级 Solidity 开发者。课程将深入讲解 Curve V1 的数学原理和算法,并通过 Vyper 代码冷启动、Foundry 练习等方式,帮助学习者理解 Curve V1 的内部机制,并为学习 Curve V2 打下基础。课程讲师 Tez 拥有多年的软件和智能合约开发经验,并提供 GitHub 仓库供学习者进行练习和讨论。 视频中提出的关键信息: * 课程目标:理解 Curve V1 的数学和算法,阅读 Vyper 代码,并进行 Foundry 测试。 * 预备知识:熟悉 Foundry、恒定乘积 AMM 和恒定总和 AMM 的数学原理。 * 可选知识:了解 Uniswap V2/V3、DeFi 基础知识(如稳定币 DAI/USDC)以及 Python。 * 课程内容:Curve V1 的数学和算法、Vyper 代码冷启动、Foundry 练习。 * 学习 Curve V1 的意义:为新的 AMM 设计提供灵感,帮助参与安全竞赛和漏洞赏金项目,以及为理解 Curve V2 做准备。 * Curve V1 与 Uniswap V2/V3 的区别:Curve V1 使用 Vyper 编写,滑点低,支持两种或多种代币,可以指定提款代币,并收取不平衡费用。 * Curve V1 的核心公式:是恒定乘积和恒定总和的结合,通过参数 A 控制曲线的平坦程度。 * Curve V1 使用牛顿法来计算代币数量和流动性。 * Curve V1 的主要合约是 StableSwap,用户通过 exchange, addLiquidity, removeLiquidity 等函数与之交互。 * StableSwap 合约会先计算 A 参数,再计算流动性 D。 * 所有代币余额在计算前都会转换为 18 位小数。 * getVirtualPrice 函数返回每个 LP 代币的价值。 * calcTalkingAmount 函数计算要铸造或销毁的 LP 代币数量。 * exchange 函数用于交换代币。 * getY 函数计算 tokenOut 的代币余额。 * getDy 和 getDyOnTheLine 函数计算交换代币后获得的代币数量。 * addLiquidity 函数用于向 Curve V1 AMM 添加流动性。 * removeLiquidity 函数会销毁 LP 份额,然后按比例将池中的所有代币返还给流动性提供者。 * removeLiquidityOneCoin 函数会销毁 LP 份额,然后返还用户指定的单个代币。 * calcWithdrawOneCoin 函数计算用户将收到的单个代币数量。

705 0 0 2025-11-28 11:46
合约安全 - 精通模糊测试

合约安全 - 精通模糊测试

视频 AI 总结: 该视频主要讲解了如何使用 Foundry 进行智能合约的快速测试,并深入探讨了 fuzzing 技术在 Foundry 中的应用。视频通过一个简单的 Safe 合约示例,演示了如何编写基本的单元测试,并逐步引入 fuzzing 来提高测试覆盖率,发现潜在的边界情况错误。核心在于利用 Foundry 的特性,如 cheat codes 和 fixtures,来模拟不同的用户行为和输入,从而更全面地测试智能合约的安全性。 视频中提出的关键信息: * **Foundry 快速测试基础:** 介绍了 Foundry 中编写测试的基本方法,包括使用 `test` 关键字定义测试函数。 * **Fuzzing 的引入:** 讲解了如何通过在测试函数中添加参数,使 Foundry 自动进行 fuzzing 测试,生成随机输入。 * **`vm.assume` 的使用:** 解释了如何使用 `vm.assume` 来限制 fuzzing 的输入范围,避免无效测试。 * **模拟用户行为:** 演示了如何使用 Foundry 的 cheat codes(如 `startPrank` 和 `stopPrank`)来模拟不同用户的调用。 * **解决地址 fuzzing 问题:** 讨论了 fuzzing 地址时可能遇到的问题,如零地址和 Foundry 内部地址,并提出了使用 `bound` 函数来限制地址范围的解决方案。 * **Fixtures 的应用:** 介绍了如何使用 fixtures 来指定 fuzzing 测试中需要包含的特定值,以提高测试的针对性。 * **代码覆盖率:** 演示了如何通过增加 fuzzing 的运行次数来提高代码覆盖率,并介绍了如何生成和查看代码覆盖率报告。 * **边缘情况:** 强调了 fuzzing 在发现边缘情况错误方面的优势,这些错误可能在手动代码审查中难以发现。

557 0 0 2025-11-03 16:52
智能合约审计、DeFi安全课程 - 回顾 Solidity 与 Foundry

智能合约审计、DeFi安全课程 - 回顾 Solidity 与 Foundry

视频 AI 总结: 本视频是一个 Solidity 和智能合约的知识回顾,旨在确保观众对后续课程所需的基础知识有充分的掌握。视频内容涵盖了环境配置、Solidity 基础、高级概念如 fuzz 测试、代理合约、delegatecall、自毁合约以及主网 fork 测试。强调了安全研究中提问的重要性,并鼓励学习者积极参与讨论。 关键信息: 1. **环境配置:** 推荐使用 VS Code 或 VS Codium 作为文本编辑器,并主要使用 Foundry 框架。 2. **Solidity 基础:** 熟悉 Remix IDE 的编译和部署流程,能够本地和在测试网上部署合约。 3. **Foundry 框架:** 熟悉 Foundry 项目结构,能够使用 forge build 和 forge test 命令。 4. **Fuzz 测试:** 介绍了 fuzz 测试的概念,包括 stateless fuzzing 和 stateful fuzzing(invariant tests),以及如何在 Foundry 中配置 fuzz 测试的运行次数。 5. **ERC 标准:** 熟悉 ERC20 和 ERC721(NFT)标准,了解 tokenURI 和 metadata 的概念。 6. **存储(Storage):** 了解 Solidity 中状态变量的存储方式,以及 constant 和 immutable 变量的区别。 7. **Fallback 和 Receive 函数:** 了解这两个函数的作用,以及如何使合约能够接收 ETH。 8. **ABI 编码和解码:** 学习使用 ABI.encode 和 ABI.decode 进行数据编码和解码,以及如何使用 call 和 staticcall 进行底层函数调用。 9. **代理合约(Proxy Contracts)和 Delegatecall:** 了解代理合约的工作原理,以及如何使用 delegatecall 实现合约升级。 10. **自毁合约(Self-destruct):** 了解 self-destruct 关键字的作用,以及如何利用它强制将 ETH 发送到其他合约。 11. **主网 Fork 测试:** 学习如何在本地创建主网的 fork,并在此基础上进行测试。

1829 0 0 2025-09-06 21:59
如何使用跨链代币(CCT)标准和 Foundry 创建跨链代币

如何使用跨链代币(CCT)标准和 Foundry 创建跨链代币

视频 AI 总结: 本视频主要讲解了如何使用 Foundry 快速构建跨链代币(CCT),并使用 Chainlink 的跨链互操作协议(CCIP)实现代币在 Avalanche Fuji 测试网和 Arbitrum Sepolia 测试网之间的安全转移。视频通过一步步的演示,展示了如何部署代币合约、创建代币池、配置跨链参数,以及最终完成代币的跨链转移。 关键信息: 1. CCT 基于 ERC-677 标准,简化了跨链代币转账的流程。 2. 使用 Foundry 可以快速部署和管理智能合约。 3. 视频演示了在 Avalanche Fuji 和 Arbitrum Sepolia 两个测试网上部署代币和代币池的过程。 4. 通过配置 Token Admin Registry 和应用链更新,实现了跨链参数的设置。 5. 展示了如何使用 CCIP 将代币从 Avalanche Fuji 安全地转移到 Arbitrum Sepolia。 6. 提供了 GitHub 代码仓库和开发者文档的链接,方便学习和实践。

833 0 0 2025-08-14 16:47
Foundry 测试:作弊码、模糊测试与不变量测试

Foundry 测试:作弊码、模糊测试与不变量测试

视频 AI 总结: 该视频主要介绍了 Foundry 测试框架的使用,重点讲解了测试流程、常用作弊码、分叉测试、模糊测试和不变量测试。通过实例代码演示了如何使用 console.log 调试合约、编写测试用例、模拟区块链环境、进行模糊测试以及进行不变量测试。强调了测试在智能合约开发中的重要性,并鼓励开发者为自己的合约编写测试用例。 关键信息: 1. **Console.log 调试:** 可以在本地测试环境中使用 console.log 打印变量值,方便调试。 2. **测试流程:** 继承 Test 合约,使用 setup 函数初始化测试环境,使用 test 或 fuz 关键字定义测试用例。 3. **常用作弊码:** vm.warp、vm.skip、vm.prank、vm.deal、vm.mockBalance 等作弊码可以模拟区块链环境,方便测试。 4. **分叉测试:** 可以 fork 链上状态到本地进行测试,方便与真实合约交互。 5. **模糊测试:** 使用 forge fuzz 命令进行模糊测试,可以自动生成测试用例,覆盖各种边界条件。 6. **不变量测试:** 使用 invariant 关键字定义不变量测试,可以验证合约在各种状态下是否满足某些不变的条件。 7. **Gas 报告:** 使用 gas report 命令生成 gas 报告,可以帮助开发者优化合约的 gas 消耗。 8. **事件测试:** 使用 expectEmit 关键字测试合约是否触发了预期的事件。

263 0 0 2025-07-25 22:50