Skip to content

Commit

Permalink
Update readme.md
Browse files Browse the repository at this point in the history
  • Loading branch information
AdamZeng1 authored Jan 3, 2024
1 parent ba8ab71 commit ca66ad5
Showing 1 changed file with 15 additions and 16 deletions.
31 changes: 15 additions & 16 deletions S10_Honeypot/readme.md
Original file line number Diff line number Diff line change
Expand Up @@ -41,9 +41,9 @@ tags:

`Pixiu` 有一个状态变量`pair`,用于记录`uniswap``Pixiu-ETH LP`的币对地址。它主要有三个函数:

1. 构造函数:初始化代币的名称和代号,并根据 `uniswap``create2` 的原理计算`LP`合约地址,具体内容可以参考 [WTF Solidity 第25讲: Create2](https://github.com/AmazingAng/WTFSolidity/blob/main/25_Create2/readme.md)。这个地址会在 `_beforeTokenTransfer()` 函数中用到。
1. 构造函数:初始化代币的名称和代号,并根据 `uniswap``create2` 的原理计算`LP`合约地址,具体内容可以参考 [WTF Solidity 第25讲: Create2](https://github.com/AmazingAng/WTFSolidity/blob/main/25_Create2/readme.md)。这个地址会在 `_update()` 函数中用到。
2. `mint()`:铸造函数,仅 `owner` 地址可以调用,用于铸造 `Pixiu` 代币。
3. `_beforeTokenTransfer()``ERC20`代币在被转账前会调用的函数。在其中,我们限制了当转账的目标地址 `to``LP` 的时候,也就是韭菜卖出的时候,交易会 `revert`;只有调用者为`owner`的时候能够成功。这也是貔貅合约的核心。
3. `_update()``ERC20`代币在被转账前会调用的函数。在其中,我们限制了当转账的目标地址 `to``LP` 的时候,也就是韭菜卖出的时候,交易会 `revert`;只有调用者为`owner`的时候能够成功。这也是貔貅合约的核心。

```solidity
// 极简貔貅ERC20代币,只能买,不能卖
Expand Down Expand Up @@ -74,20 +74,19 @@ contract HoneyPot is ERC20, Ownable {
}
/**
* @dev See {ERC20-_beforeTokenTransfer}.
* @dev See {ERC20-_update}.
* 貔貅函数:只有合约拥有者可以卖出
*/
function _beforeTokenTransfer(
address from,
address to,
uint256 amount
) internal virtual override {
super._beforeTokenTransfer(from, to, amount);
// 当转账的目标地址为 LP 时,会revert
if(to == pair){
require(from == owner(), "Can not Transfer");
}
}
*/
function _update(
address from,
address to,
uint256 amount
) internal virtual override {
if(to == pair){
require(from == owner(), "Can not Transfer");
}
super._update(from, to, amount);
}
}
```

Expand Down Expand Up @@ -137,4 +136,4 @@ contract HoneyPot is ERC20, Ownable {

## 总结

这一讲,我们介绍了貔貅合约和预防貔貅盘的方法。貔貅盘是每个韭菜必经之路,大家也对它恨之入骨。另外,最近也出现貔貅 `NFT`,恶意项目方通过修改 `ERC721` 的转账或授权函数,使得普通投资者不能出售它们。了解貔貅合约的原理和预防方法,可以显著减少你买到貔貅盘的概率,让你的资金更安全,大家要不断学习。
这一讲,我们介绍了貔貅合约和预防貔貅盘的方法。貔貅盘是每个韭菜必经之路,大家也对它恨之入骨。另外,最近也出现貔貅 `NFT`,恶意项目方通过修改 `ERC721` 的转账或授权函数,使得普通投资者不能出售它们。了解貔貅合约的原理和预防方法,可以显著减少你买到貔貅盘的概率,让你的资金更安全,大家要不断学习。

0 comments on commit ca66ad5

Please sign in to comment.