【发布时间】:2022-11-27 11:19:45
【问题描述】:
我是 solidity 和 erc20 的新手,所以我阅读了 openzeppelin 上的 ERC20 描述,发现这个功能对我来说不是很清楚。
approve(spender, amount)
允许的目的是什么花钱的人花费我的代币,而不是将我的代币发送到花钱的人直接地?
【问题讨论】:
我是 solidity 和 erc20 的新手,所以我阅读了 openzeppelin 上的 ERC20 描述,发现这个功能对我来说不是很清楚。
approve(spender, amount)
允许的目的是什么花钱的人花费我的代币,而不是将我的代币发送到花钱的人直接地?
【问题讨论】:
您可以更改已批准的金额或完全撤销(仅未使用的金额)。但是您不能收回已经发送的转账。
approve() 函数的一个常见用例是在 DEX(去中心化交易所)上进行交易。例如,您批准 DEX 合约地址使用您的 USDT 代币。当你想购买 XYZ 代币(针对 USDT)时,DEX 只需从你的地址中提取已经批准的 USDT 并将 XYZ 代币发送给你。
【讨论】:
Approve 是一个用于授予权限的函数 spender 可以是任何人,交易所或 EOA 可以从您的代币合约中提取尽可能多的次数,直到 _value。
您可以查看此参考here
【讨论】:
正如其他人所说,Approve 函数可以允许spender 拉取您地址中令牌的amount。可用于:DEX(去中心化交易所)或Custody services。
在托管服务中,当你approve托管商拿走你的token后,每当你的钱包收到token时,托管商就可以将你的token转入一些internal wallets并为你保管。 (这就像传统银行的运作方式一样)
【讨论】: