文章 视频 课程 百科图谱 集训营
更多
  • 问答
  • 提问
  • 发表文章
  • 专栏
  • 活动
  • 文档
  • 工作
  • 集市
  • 发现
  • 文章
  • 问答
  • 视频
  • 课程
  • 集训营
  • 专栏
  • 活动
  • 工作
  • 文档
  • 集市
搜索
  • 登录/注册
Tiny熊
  • 文章
  • 专栏
  • 问答
  • 视频
  • 课程
  • 集市作品
  • 活动
  • 招聘
TA的视频 TA的合集
Foundry 入门:合约本地开发译、测试和部署
视频 AI 总结: 该视频主要讲解了如何使用 Foundry 进行以太坊智能合约的开发,包括 IDE 的选择、Foundry 的安装和基本使用、项目初始化、编译、测试和部署流程。介绍了 AI 编辑器在智能合约开发中的应用, 推荐使用本地 IDE 进行工程化管理,并利用 AI 编辑器提高开发效率。 * Foundry 是目前最流行的以太坊开发框架,其测试功能强大。 * Foundry 提供 Forge、Cast 和 Anvil 等命令,用于项目初始化、合约交互和本地节点启动。 * 使用 Forge Build 命令编译合约,生成 ABI 和 bytecode。 * 使用 Forge Test 命令运行测试用例,并可进行模糊测试。 * 使用 Forge Create 或 Forge Script 命令部署合约到本地或测试网络。 * Anvil 可以模拟本地测试链,并提供默认账户和私钥。
19
0
0
1天前
Foundry 实战开发技巧
视频 AI 总结: 该视频主要讲解了在使用 Foundry 进行以太坊开发时,如何引入外部依赖库(如 OpenZeppelin),以及如何更安全地管理部署合约的账号(私钥)。此外,还介绍了合约开源的方法,以及如何使用 Foundry 的 cast 命令与链进行交互,例如查看余额、转账和调用合约函数。最后,视频还分享了一些实用技巧,例如使用环境变量和脚本来简化部署流程。 关键信息: * **依赖库管理:** 使用 `forge install` 安装依赖库,并通过 `forge remapping` 创建别名,方便在代码中引入。 * **账号安全:** 避免直接使用明文私钥,推荐使用 keystore 加密存储私钥,并使用 `cast wallet` 命令管理账号。 * **合约开源:** 通过区块链浏览器申请 API key,并在 Foundry 中配置,然后使用 `forge verify-contract` 命令或在部署时添加 `-verify` 参数进行合约开源。 * **链上交互:** 使用 `cast` 命令与链进行交互,例如 `cast balance` 查看余额,`cast send` 转账,`cast call` 调用合约函数。 * **实用技巧:** 使用环境变量和脚本简化部署流程,将合约地址保存到文件中方便后续使用。
17
0
0
1天前
ERC721标准与NFT铸造
视频 AI 总结: 该视频主要讲解了链上合约中与 Token 交互的两种主要类型:同质化 Token (ERC20) 和非同质化 Token (NFT/ERC721),并重点介绍了 ERC721 标准及其特性,以及如何铸造 NFT。视频还提到了 ERC1155 标准,SBT (不可转让的 NFT) 以及去中心化存储方案 IPFS 和 Arweave。最后,视频布置了一个练习,即编写一个简单的 NFT 市场合约。 关键信息: * ERC721 标准的 NFT 具有独一无二的特性,每个 Token 都有唯一的编号 (Token ID)。 * NFT 的独特性通过 Token ID 及其对应的描述 (Metadata) 来表达,Metadata 通常是一个指向 JSON 文件的 URL,JSON 文件包含 NFT 的图片、属性等信息。 * ERC721 接口规范定义了一些函数和接口,例如 Safe Transfer Flow,用于安全地转移 Token。 * OpenZeppelin 提供了 ERC721 的常用实现,包括核心实现、Metadata 处理和 Immutable 实现。 * 铸造 NFT 需要准备好原始数据 (图片、其他数据),并将其存储在去中心化存储 (IPFS 或 Arweave) 中。 * SBT 是不可转让的 NFT,通过在转让方法中直接 revert 实现。 * ERC1155 结合了 ERC20 和 ERC721 的特性,允许发行多个相同类型的 Token。 * 练习:编写一个简单的 NFT 市场合约,允许用户上架和购买 NFT。
37
0
0
4天前
ERC20 授权机制与 ERC20 扩展
视频 AI 总结: 该视频主要讲解了 ERC20 Token 的授权机制及其在 Token Bank 存款中的应用,并探讨了 ERC20 标准的一些局限性以及改进方案。核心内容是讲解如何通过 ERC20 的授权功能,实现用户在 Token Bank 中存款,以及如何通过扩展 ERC20 标准,简化用户的操作流程,提升用户体验。 视频中提出的关键信息: 1. ERC20 Token 转账与 ETH 转账的不同之处,ERC20 转账交互的是 Token 合约地址,而不是目标地址。 2. Token Bank 存款需要使用 ERC20 的授权功能,包括 approve 和 transferFrom 两个方法。 3. 用户需要先 approve Token Bank 合约,授权其使用自己的 Token,然后 Token Bank 合约才能调用 transferFrom 方法,从用户账户转移 Token 到 Token Bank。 4. ERC20 标准存在一些问题,如转账无法携带额外信息,以及转账到合约地址可能导致资金被锁定。 5. 介绍了 ERC777 和 ERC1363 等 ERC20 扩展标准,它们通过增加回调函数,简化了用户的操作流程,并允许在转账时携带额外信息。 6. 强调了在进行 ERC20 Token 转账时,需要注意一些早期 Token 可能存在的不符合 ERC20 标准的问题,如转账失败没有返回值或返回 false,建议使用 safeTransfer 方法来避免这些问题。
45
0
0
4天前
Solidity 库、代码复用与事件
视频 AI 总结: 该视频主要讲解了Solidity中的库(Library)的概念、代码复用方式、import 语句以及事件(Event)的使用。库用于封装可复用的函数,类似于合约但更特殊,通过 `library` 关键字定义。代码复用可以通过继承(abstract 合约)或组合(library)实现。`import` 语句用于导入代码,包括第三方库如 OpenZeppelin,提高效率和安全性。事件用于合约与外部状态的沟通,通过 `emit` 关键字触发,外部程序可监听事件以了解链上状态变化。 关键信息: * **库(Library)**:用于代码复用,通过 `library` 关键字定义,可以封装函数。 * **代码复用方式**:继承(abstract 合约)和组合(library)。 * **Internal vs. External 库函数**:Internal 函数的代码会被嵌入到调用合约中,External 函数需要单独部署,并通过委托调用。 * **Import 语句**:用于导入代码,支持相对路径、URL 路径(IPFS)。 * **OpenZeppelin**:常用的第三方库,包含权限、代理、Token 等模块。 * **事件(Event)**:用于合约与外部状态的沟通,通过 `emit` 关键字触发,外部程序可监听事件以了解链上状态变化。 * **Index 索引**:事件的参数可以使用 Index 索引,提高过滤效率。
46
0
0
2025-07-16 08:33
ERC-20:以太坊代币标准
视频 AI 总结: 该视频主要讲解了以太坊中 ERC-20 标准,以及如何在实际应用中与 Token 和 NFT 进行交互。视频详细解释了 ERC-20 标准的定义、作用,以及如何使用它来表示同质化代币,并介绍了 ERC-20 的关键接口和实现原理。此外,视频还对比了 ETH 和 ERC-20 Token 的区别,并布置了一个关于 Token Bank 的作业,旨在让大家实践合约之间的相互调用和 Token 的使用。 关键信息: * ERC-20 是一种用于表示同质化代币的标准,定义了代币的基本接口,如发行总量、余额查询、转账等。 * ERC 是 EIP(以太坊改进提案)的一个子类,用于定义以太坊网络的应用标准。 * ERC-20 定义了 Token 的标准接口,使得不同的合约可以方便地进行交互。 * ETH 是原生币,余额反映在账户空间下,而 ERC-20 Token 是智能合约实现的,余额保存在合约的 Mapping 中。 * 在合约中,通常使用整数来表示代币数量,需要注意精度问题,例如使用 10 的 18 次方来表示小数点后 18 位的精度。 * ETH 转账和 Token 转账的交易结构不同,Token 转账是与合约进行交互,调用合约中的转账函数。 * OpenZeppelin 已经实现了许多 ERC 标准,可以直接使用或扩展。 * 作业:编写一个 Token Bank 合约,实现 Token 的存储和提取功能,并思考如何解决 Token Bank 如何知道每个用户存了多少 Token 的问题。
43
0
0
2025-07-16 08:32
Solidity ABI 底层调用:call, delegatecall
视频 AI 总结: 该视频主要讲解了 Solidity 中 ABI 底层调用的相关知识,并对 `call`、`delegatecall` 底层调用方式进行了详细对比。核心内容是解释了这些底层调用与高级函数调用之间的区别,以及它们在处理 gas 限制、上下文切换和错误处理方面的不同行为。理解这些底层调用对于进行更高级的合约交互和优化至关重要。 关键信息: * **ABI 编码**:任何合约调用都会转换为 ABI 编码,包含函数选择器和参数编码。 * **`call` 调用**:底层调用,需手动检查返回值,不受 gas 限制,可以向合约转账,会切换上下文。 * **`delegatecall` 调用**:保持上下文的底层调用,相当于借用目标合约的代码在当前合约上下文中执行。 * **`staticcall` 调用**:模拟调用,不会修改状态变量,用于只读操作,会切换上下文。 * **错误处理**:底层调用失败不会抛出异常,而是通过返回值表示。 * **转账建议**:推荐使用 OpenZeppelin 的 `sendValue` 方法进行转账,避免 gas 限制问题。
77
0
0
2025-07-16 07:59
QA:staticcall与实践方法
视频 AI 总结: 该视频主要讲解了 Solidity 中的 Static Call 的概念和使用场景,以及 View 方法的调用方式。老师通过实际代码演示,解释了 Static Call 的模拟执行特性,并强调了实践在学习智能合约开发中的重要性。同时,老师还推荐了一些开源项目,鼓励学生通过实践来加深对智能合约的理解,并建议从较早的版本入手,逐步学习复杂的逻辑。 关键信息: * Static Call 用于模拟执行合约调用,不改变链上状态,主要用于获取返回值或进行预判。 * Static Call 在实际生产环境中用得很少,但在需要预先知道调用结果时可以使用。 * View 方法调用不需要签名,不消耗 GAS fee (GAS price 为 0),常用于获取链上数据。 * Static Call 只能调用 View 和 Pure 方法,不能调用修改状态的方法。 * 学习智能合约开发的关键在于实践,建议从开源项目的早期版本入手,并尝试实现一些简单的项目,如 Uniswap、Token 投票、多签合约等。
31
0
0
2025-07-16 07:59
Solidity/EVM 错误处理
视频 AI 总结: 该视频主要讲解了Solidity/EVM 中错误处理机制,与其他语言不同,EVM 在遇到错误时会回滚所有之前的状态变更,除非错误被程序处理。Solidity 提供了几种错误处理方式,包括抛出错误让 EVM 回滚,以及使用 try-catch 捕获外部调用产生的错误。 关键信息: * EVM 的错误处理机制具有原子性,要么全部成功,要么全部失败,不会出现中间状态。 * Solidity 中可以使用 `require` 和 `assert` 进行条件检查,条件不满足时会抛出异常。 * `assert` 用于代码不应该到达的状态,而 `require` 用于检查外部条件。 * 抛出错误时可以指定字符串或自定义错误类型,自定义错误类型 Gas 消耗更低。 * `try-catch` 只能用于捕获外部调用产生的错误,不能捕获合约内部的错误。 * `try-catch` 无法捕获 out-of-gas 错误和调用不存在合约的错误。
44
0
0
2025-07-12 10:35
QA:合约参数处理、接口与错误处理
视频 AI 总结: 该视频主要讲解了以太坊智能合约中参数匹配、数据传递、合约组织、错误处理以及接口与实现的关系等问题。首先解释了合约函数参数的传递方式,通过 input data 传递,并按照特定规则(前四个字节为函数签名,后每 32 字节为一个参数)进行解析。然后讨论了合约的组织方式,以及接口和实现的关系,强调了 ABI 编码在合约调用中的作用。最后,详细解释了错误处理机制,包括 revert、require、assert 和 panic 的使用场景和区别。 关键信息: * 合约参数通过 input data 传递,前四个字节为函数签名,后每 32 字节为一个参数。 * 合约可以 import 其他合约,实现代码复用。 * 编译后的字节码和发送的字节码相同,但链上存储的字节码是构造函数执行后的结果。 * 接口和实现之间并非强制继承关系,ABI 编码是合约调用的基础。 * 错误处理机制包括 revert、require、assert 和 panic,assert 用于断言程序本身的错误。
28
0
0
2025-07-12 10:29
  • ‹
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • ...
  • 31
  • 32
  • ›
Tiny熊
Tiny熊
0xD682...E8AB
贡献值: 22454 学分: 454611
登链社区发起人 通过区块链技术让世界变得更好而尽一份力。
2279 关注 1086 粉丝
关于
关于我们
社区公约
学分规则
Github
伙伴们
DeCert
ChainTool
GCC
合作
广告投放
发布课程
联系我们
友情链接
关注社区
Discord
Twitter
Youtube
B 站
公众号

关注不错过动态

微信群

加入技术圈子

©2025 登链社区 版权所有 | Powered By Tipask3.5|
粤公网安备 44049102496617号 粤ICP备17140514号 粤B2-20230927 增值电信业务经营许可证

发送私信

请将文档链接发给晓娜,我们会尽快安排上架,感谢您的推荐!

提醒

检测到你当前登录的账号还未绑定手机号
请绑定后再发布
去绑定
编辑封面图
封面预览