12. 智能合约设计④
- 上周作业用:
jQuery - 这周用:
React - 最早封装了钱包(小狐狸)的核心 API:原生和古老,如果自己开发需要消耗很多时间
- 这个正好适合入门学习
core:所有钱包状态的封装metamask:基于core进行的二次封装eip1193:这是标准,有个组织ERC
- 面试要考
ERC标准,eip1193标准 ERC-20是万协议之爹/所有Token协议的爸爸。ERC-20贯穿我们这个课程生涯- 开发套件:
ens name:- ens name 官网地址:钱包私有头像和域名地址
- 需要购买,一年
4-5$,这样就有自己的私有头像和与域名地址 - 作用是:把自己的钱包和域名绑定到一起
- 完成今天的作业就可以接活了
- 并整理整个流程
- 熟悉
web3行业
- 换公司,日常工作:换钱包、换链、理解业务
- 水龙头熟悉这个行业
- 学习内容:
- 手动开发合约
ai开发合约
中国交易所
- 发来的电脑会有监控,并检测是否在电脑前
- 外国的公司不会,而且不卷,尊重人权,学习英语迫在眉睫
标准
EIP(Ethereum Improvement Proposal)是“以太坊改进提案的总称”,包含所有对以太坊的改进。ERC(Ethereum Request for Comments)是EIP中专门用于“应用层标准(比如Token标准)”的一个子集。- 所以:
ERC是EIP的一种。并不是并列关系,是包含关系。
ERC-20和 EIP-1193 的区别
ERC-20= 代币标准(链上)EIP-1193= 钱包通信标准(链下/DApp与钱包之间)- 更清晰:
ERC-20——Token规范(智能合约层)EIP-1193——DApp如何与钱包通信(客户端层)
ERC-20 标准
ERC-20是第一个真正意义上的Token标准在
ERC-20出来之前,Token都是“自定义”的:- 每个项目自己写
transfer、approve等逻辑 - 格式不统一、钱包难支持、交易所难接入
- 安全漏洞频出(早期非常混乱)
- 每个项目自己写
ERC-20一出,直接定了 统一的Token规范:
| 函数 | 作用 |
|---|---|
totalSupply | 总量 |
balanceOf | 查询余额 |
transfer | 转账 |
approve/allowance | 授权 |
transferFrom | 合约代转 |
它第一次把 Token 变成了标准化资产。
- 👉 就像
HTML1.0之于网页 - 👉 或
USB接口之于电子设备 - 👉 或
HTTP之于互联网
没有 ERC-20,今天的 Crypto 生态几乎没有办法运转。
- 因此被戏称为:
- 📌 “万协议之爹”
- 📌 “加密世界的
USB接口标准”
EIP-1193 标准
EIP-1193是以太坊生态里 最核心、最基础的“钱包与DApp交互标准”,它定义了Ethereum Provider(以太坊提供者) 的接口规范。EIP-1193=MetaMask、WalletConnect、OKX Wallet等所有钱包与前端通信的最统一标准。标准化
DApp调用钱包 的方式:- 请求账户
- 发送交易
- 调用链上数据
- 监听账户/网络变化
- 统一返回方式与错误处理
让 DApp 能自由兼容各种钱包:MetaMask、Coinbase Wallet、OKX Wallet…
就像浏览器有 window.fetch() 标准一样,钱包有 window.ethereum 标准。
发币
- 做审计的公司,实现了
ERC-20标准的官方接口 web3审计凭本事吃饭,有钱- 下面是发币代码,很简单,几句话:
js
pragma solidity ^0.8.20;
import "@openzeppelin/contracts/token/ERC20/ERC20.sol";
contract MyToken is ERC20 {
constructor() ERC20("MyToken", "MTK") {
}
}- 起个名称
MyToken就可以发币,并卖给别人了
佳哥笔记
Details
js
合约?
1.如何给用户能够省下gas
2.合约的安全相关的
3.对金融知识理解 通证经济 token
前端交互?
1.钱包封装
2.合约调用
3.阅读合约