首页 > 解决方案 > 如何在代币合约中区分在 uniswap 上买卖 erc-20 代币

问题描述

如果有人为 eth 出售或购买我们的代币(例如,我的意思是 uniswap),有没有办法检查 erc-20 代币的 transfer() 方向是哪个?

标签: ethereumsolidityerc20

解决方案


我做了一些分析,我遇到的唯一问题是 sell 和 addLiquidity 给出了相同的参数:

add liquidity 

uniswapRouter ====>>  0x7a250d5630b4cf539739df2c5dacb4c659f2488d
uniswapPair ====>>  0x4f58b3a4c69f1ee8a9bf11cb5defadc89751c32a
msgSender ====>>  0x7a250d5630b4cf539739df2c5dacb4c659f2488d
sender ====>>  0xbde658ba6aaf6c9f7938820b69d47f099bc5ea23
recipient ====>>  0x4f58b3a4c69f1ee8a9bf11cb5defadc89751c32a

for adding liquidity 
1. router is the msgSender 
2. tx sender is the owner of the tokens
2. Pair is the recipient

Token Sell 

uniswapRouter ====>>  0x7a250d5630b4cf539739df2c5dacb4c659f2488d
uniswapPair ====>>  0x4f58b3a4c69f1ee8a9bf11cb5defadc89751c32a
msgSender ====>>    0x7a250d5630b4cf539739df2c5dacb4c659f2488d
sender ====>>       0xbde658ba6aaf6c9f7938820b69d47f099bc5ea23
recipient ====>>    0x4f58b3a4c69f1ee8a9bf11cb5defadc89751c32a

For Token Sell 

1. router is msgSender
2. sender is asset owner 
3. recipient is uniswap pair



Buy Tokens 

uniswapRouter ====>>  0x7a250d5630b4cf539739df2c5dacb4c659f2488d
uniswapPair ====>>  0x4f58b3a4c69f1ee8a9bf11cb5defadc89751c32a
msgSender ====>>  0x4f58b3a4c69f1ee8a9bf11cb5defadc89751c32a
sender ====>>  0x4f58b3a4c69f1ee8a9bf11cb5defadc89751c32a
recipient ====>>  0xbde658ba6aaf6c9f7938820b69d47f099bc5ea23

For Token Buy
1. pair is msgSender 
2. transfer sender is the pair 
3. recipient is the actual owner of final tokens 


remove liquidity 

uniswapRouter ====>>  0x7a250d5630b4cf539739df2c5dacb4c659f2488d
uniswapPair ====>>  0x4f58b3a4c69f1ee8a9bf11cb5defadc89751c32a
msgSender ====>>  0x7a250d5630b4cf539739df2c5dacb4c659f2488d
sender ====>>  0x7a250d5630b4cf539739df2c5dacb4c659f2488d
recipient ====>>  0xbde658ba6aaf6c9f7938820b69d47f099bc5ea23

For Remove liquidity 

1. router is msgSender
2. sender is router 
3. recipient asset owner

推荐阅读