Skip to content

Commit 1f329ad

Browse files
committed
Add study notes for 2025-08-19
1 parent 901a3ce commit 1f329ad

1 file changed

Lines changed: 78 additions & 0 deletions

File tree

kuove.md

Lines changed: 78 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -15,6 +15,84 @@ web2转型web3,希望学习测试与开发
1515
## Notes
1616

1717
<!-- Content_START -->
18+
# 2025-08-19
19+
20+
### **核心**
21+
22+
### **`IERC20`**
23+
24+
```solidity
25+
import "@openzeppelin/contracts/token/ERC20/IERC20.sol";
26+
```
27+
28+
ERC 中定义的 ERC-20 标准接口。
29+
30+
函数
31+
32+
- [`totalSupply()`](https://docs.openzeppelin.com/contracts/5.x/api/token/erc20#IERC20-totalSupply--)
33+
- [`balanceOf(account)`](https://docs.openzeppelin.com/contracts/5.x/api/token/erc20#IERC20-balanceOf-address-)
34+
- [`transfer(to, value)`](https://docs.openzeppelin.com/contracts/5.x/api/token/erc20#IERC20-transfer-address-uint256-)
35+
- [`allowance(owner, spender)`](https://docs.openzeppelin.com/contracts/5.x/api/token/erc20#IERC20-allowance-address-address-)
36+
- [`approve(spender, value)`](https://docs.openzeppelin.com/contracts/5.x/api/token/erc20#IERC20-approve-address-uint256-)
37+
- [`transferFrom(from, to, value)`](https://docs.openzeppelin.com/contracts/5.x/api/token/erc20#IERC20-transferFrom-address-address-uint256-)
38+
39+
事件
40+
41+
- [`Transfer(from, to, value)`](https://docs.openzeppelin.com/contracts/5.x/api/token/erc20#IERC20-Transfer-address-address-uint256-)
42+
- [`Approval(owner, spender, value)`](https://docs.openzeppelin.com/contracts/5.x/api/token/erc20#IERC20-Approval-address-address-uint256-)
43+
44+
### **`totalSupply() → uint256` external**
45+
46+
返回存在的代币的值。
47+
48+
### **`balanceOf(address account) → uint256` external**
49+
50+
返回 `account` 拥有的代币的值。
51+
52+
### **`transfer(address to, uint256 value) → bool` external**
53+
54+
将 `value` 数量的代币从调用者的帐户移动到 `to`
55+
56+
返回一个布尔值,指示操作是否成功。
57+
58+
发出一个 [`transfer`](https://docs.openzeppelin.com/contracts/5.x/api/token/erc20#IERC20-transfer-address-uint256-) 事件。
59+
60+
### **`allowance(address owner, address spender) → uint256` external**
61+
62+
返回 `spender` 将被允许代表 `owner` 通过 [`transferFrom`](https://docs.openzeppelin.com/contracts/5.x/api/token/erc20#IERC20-transferFrom-address-address-uint256-) 花费的剩余代币数量。 默认情况下,此值为零。
63+
64+
当调用 [`approve`](https://docs.openzeppelin.com/contracts/5.x/api/token/erc20#IERC20-approve-address-uint256-) 或 [`transferFrom`](https://docs.openzeppelin.com/contracts/5.x/api/token/erc20#IERC20-transferFrom-address-address-uint256-) 时,此值会发生变化。
65+
66+
### **`approve(address spender, uint256 value) → bool` external**
67+
68+
将 `value` 数量的代币设置为 `spender` 在调用者的代币上的 allowance。
69+
70+
返回一个布尔值,指示操作是否成功。
71+
72+
| | |
73+
| --- | --- |
74+
| | 请注意,使用此方法更改 allowance 会带来风险,即有人可能会因不幸的事务排序而同时使用旧 allowance 和新 allowance。 缓解这种竞争状况的一种可能的解决方案是首先将 spender 的 allowance 减少到 0,然后再设置所需的值:https://github.com/ethereum/EIPs/issues/20#issuecomment-263524729 |
75+
76+
发出一个 [`Approval`](https://docs.openzeppelin.com/contracts/5.x/api/token/erc20#IERC20-Approval-address-address-uint256-) 事件。
77+
78+
### **`transferFrom(address from, address to, uint256 value) → bool` external**
79+
80+
使用 allowance 机制将 `value` 数量的代币从 `from` 移动到 `to`。 然后从调用者的 allowance 中扣除 `value`
81+
82+
返回一个布尔值,指示操作是否成功。
83+
84+
发出一个 [`transfer`](https://docs.openzeppelin.com/contracts/5.x/api/token/erc20#IERC20-transfer-address-uint256-) 事件。
85+
86+
### **`Transfer(address indexed from, address indexed to, uint256 value)` event**
87+
88+
当 `value` 个代币从一个帐户(`from`)移动到另一个帐户(`to`)时发出。
89+
90+
请注意,`value` 可能为零。
91+
92+
### **`Approval(address indexed owner, address indexed spender, uint256 value)` event**
93+
94+
当通过调用 [`approve`](https://docs.openzeppelin.com/contracts/5.x/api/token/erc20#IERC20-approve-address-uint256-) 设置 `owner` 的 `spender` 的 allowance 时发出。 `value` 是新的 allowance。
95+
1896
# 2025-08-18
1997

2098
# ERC-20学习

0 commit comments

Comments
 (0)