Skip to content

12. 智能合约设计④

  • 上周作业用:jQuery
  • 这周用:React
  • 最早封装了钱包(小狐狸)的核心 API:原生和古老,如果自己开发需要消耗很多时间
    • 这个正好适合入门学习
    • core:所有钱包状态的封装
    • metamask:基于core进行的二次封装
    • eip1193:这是标准,有个组织ERC
  • 面试要考ERC标准,eip1193标准
  • ERC-20是万协议之爹/所有 Token 协议的爸爸。
  • ERC-20贯穿我们这个课程生涯
  • 开发套件:
  • ens name
    • ens name 官网地址:钱包私有头像和域名地址
    • 需要购买,一年4-5$,这样就有自己的私有头像和与域名地址
    • 作用是:把自己的钱包和域名绑定到一起
  • 完成今天的作业就可以接活了
    • 并整理整个流程
    • 熟悉web3行业
  • 换公司,日常工作:换钱包、换链、理解业务
    • 水龙头熟悉这个行业
  • 学习内容:
    • 手动开发合约
    • ai开发合约

中国交易所

  • 发来的电脑会有监控,并检测是否在电脑前
  • 外国的公司不会,而且不卷,尊重人权,学习英语迫在眉睫

标准

  • EIPEthereum Improvement Proposal)是“以太坊改进提案的总称”,包含所有对以太坊的改进。
  • ERCEthereum Request for Comments)是 EIP 中专门用于“应用层标准(比如 Token 标准)”的一个子集。
  • 所以:ERCEIP 的一种。并不是并列关系,是包含关系。

ERC-20EIP-1193 的区别

  • ERC-20 = 代币标准(链上)
  • EIP-1193 = 钱包通信标准(链下/DApp 与钱包之间)
  • 更清晰:
    • ERC-20 —— Token 规范(智能合约层)
    • EIP-1193 —— DApp 如何与钱包通信(客户端层)

ERC-20 标准

  • ERC-20 是第一个真正意义上的 Token 标准

  • ERC-20 出来之前,Token 都是“自定义”的:

    • 每个项目自己写 transferapprove 等逻辑
    • 格式不统一、钱包难支持、交易所难接入
    • 安全漏洞频出(早期非常混乱)
  • 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 = MetaMaskWalletConnectOKX Wallet 等所有钱包与前端通信的最统一标准。

  • 标准化 DApp 调用钱包 的方式:

    • 请求账户
    • 发送交易
    • 调用链上数据
    • 监听账户/网络变化
    • 统一返回方式与错误处理

DApp 能自由兼容各种钱包:MetaMaskCoinbase WalletOKX Wallet

就像浏览器有 window.fetch() 标准一样,钱包有 window.ethereum 标准。

发币

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.阅读合约