合约部署

微信扫码分享
VibeCoding:  使用 Viem 与 NFTMarket 交互与监听

VibeCoding: 使用 Viem 与 NFTMarket 交互与监听

视频 AI 总结: 1. 核心内容:本课程作业要求编写一个后端程序,通过 Viem 监听 NFTMarket 合约的买卖事件(List 和 BuyNFT),并用扫块方式打印日志。同时,需编写交互脚本调用合约进行上架、购买等操作。AI 自动生成了代码并部署合约,但需要理解其工作原理并优化部署及监听方式。 2. 关键信息: - 需要准备 NFTMarket 合约地址、ABI、RPC 节点 URL。 - 监听采用扫块方式(遍历每个区块的日志),而非直接 watch log。 - 交互脚本需处理授权(Approve)、上架(List)、购买(Buy)等步骤。 - AI 自动部署合约并保存地址,但部署文件路径可能需手动调整。 - 作业强调后端监听事件以获取链上数据,实际应用常需存入数据库。

14 0 0 2026-05-23 10:17
作业讲解:Vibe Coding 实现 Bank 合约

作业讲解:Vibe Coding 实现 Bank 合约

视频 AI 总结: 视频演示了如何利用AI工具(如OpenAI的CodeX)快速生成一个Solidity智能合约,以实现一个简单的银行功能,即记录用户存款。讲师详细审查了AI生成的代码,指出并优化了其中冗余的设计(如`totalDeposit`变量与原生`balance`的重复),并强调了AI辅助编程的实践方法。视频还涵盖了将合约部署到测试网(如Sepolia或BNB Chain)进行测试的步骤,包括如何获取测试币,并讨论了`view`函数在合约调用中的Gas费用机制。 关键信息: 1. **AI辅助智能合约开发**: * 利用AI工具(如CodeX)根据自然语言需求生成Solidity智能合约代码。 * 强调AI是辅助工具,开发者需审查和优化AI生成的代码,尤其是在Gas效率和逻辑准确性方面。 * 建议向AI提供明确、小模块的需求,以避免过度设计和复杂性。 2. **合约功能与优化**: * 银行合约的核心功能是记录每个地址的存款金额,并跟踪前三名存款者。 * 优化建议:避免冗余存储,例如,合约的总余额可以通过`address(this).balance`直接获取,无需额外维护`totalDeposit`变量,以节省Gas。 * 合约应包含管理员(Admin)角色,用于执行特定管理操作。 3. **部署与测试**: * 演示了在本地模拟环境(Remix)和公共测试网(如Sepolia、BNB Chain Testnet)上部署和测试合约。 * 详细介绍了如何通过“领水”(Faucet)网站获取测试币,以及使用MetaMask钱包进行交易签名和部署。 * 强调了实践操作的重要性,鼓励学员亲自部署和测试合约。 4. **EVM与Gas机制**: * 解释了`address.balance`是EVM原生机制,用于记录账户余额。 * 澄清了`view`函数在外部调用时不消耗Gas,但在内部被其他状态修改函数调用时,其操作仍会计入整个交易的Gas消耗,并由交易发起者支付。 * Gas消耗是所有操作指令Gas总和乘以Gas价格。

183 0 0 2026-03-05 09:51
Anchor框架:Solana智能合约本地开发与部署

Anchor框架:Solana智能合约本地开发与部署

AI 总结: 视频主要讲解了如何使用Anchor框架在本地环境中构建、部署和测试智能合约,以及与合约交互的基本流程。内容涵盖了开发环境配置、工程创建、合约部署和测试方法等关键技术要点。 1、开发环境与工程创建 介绍了Solana开发环境的安装过程,建议参考文档进行安装,安装完成后会有相应的命令行工具可用。 演示了如何使用 `Anchor init` 创建一个模板工程,工程目录结构包括 `anchor.toml`、`Cargo.toml` 和 `programs` 等关键文件和目录。 2、合约构建与部署 使用 `Anchor build` 构建合约,首次构建较慢,因为需要编译依赖包。构建完成后会在 `target` 目录下生成二进制文件(.so)和 IDL 文件。 部署合约时需准备账号和网络配置,使用 `Anchor deploy` 命令部署,合约的 Program ID 不会因多次部署而改变。 3、测试与日志 介绍了两种测试方法:Rust 单元测试(测试内部逻辑)和集成测试(测试指令调用)。集成测试使用 Mocha 框架,与前端交互方式类似。 演示了如何在测试中调用合约指令,并通过断言验证数据是否正确写入 PDA 账户。 讲解了日志打印的两种方式:`msg!` 和 `emit!`,前者适合打印字符串,后者适合打印结构化数据(如事件)。 4、合约交互与客户端库 介绍了Solana的客户端库(Client Library),包括官方的 `@solana/web3.js`和 `@solana/kit`。 演示了如何通过 `Provider` 和 `Program` 对象与合约交互,包括构建交易、发送交易和读取账户数据。 了如何通过 `getSignaturesForAddress` 查询特定地址参与的所有交易,适用于索引账号活动。 指出Solana的日志不永久保存,且不支持以太坊的布隆过滤器,需依赖第三方服务获取历史数据。

448 0 0 2025-10-21 23:26
深入合约创建:Create, Create2, Create3 与最小代理工厂

深入合约创建:Create, Create2, Create3 与最小代理工厂

视频 AI 总结: 该视频主要讲解了以太坊上创建合约的几种方法,以及不同方法生成的合约地址的原理和适用场景。核心内容包括:使用 create、create2 和 create3 操作码创建合约,以及使用最小代理合约来节省大规模部署相同功能合约的 gas 费用。视频详细解释了每种方法的地址生成机制,并探讨了它们在不同场景下的优缺点,例如 create2 的可预测地址特性,以及 create3 的应用。 关键信息: * **Create:** 根据部署者的地址和 nonce 计算合约地址,简单直接,但地址不可预测。 * **Create2:** 通过部署者地址、salt(随机数)和合约的 init code 计算地址,地址可预测,但只能在合约工厂中使用。 * **Create3:** 结合 create 和 create2,实现更可预测的地址,且不依赖合约代码,但 gas 成本较高。 * **最小代理合约:** 通过 delegatecall 将功能委托给实现合约,节省大规模部署相同功能合约的 gas 费用,适用于最小代理工厂模式。 * Create2 可以用于在 DEX 中创建流动性池,或者在各个链上部署地址相同的合约。 * Create3 可以在代码有差别的情况下,在各个链上部署在同一个地址。

166 0 0 2025-08-16 07:50