ERC 20 中的批准功能的目的是什么

Nik*_*ets 8 solidity erc20

我是 Solidity 和 ERC20 的新手,所以我阅读了openzeppelin上的 ERC20 描述,发现这个函数对我来说并不清楚。

approve(spender, amount)
Run Code Online (Sandbox Code Playgroud)

允许消费者花费我的代币,而不是直接将我的代币发送给消费者的目的是什么?

Pet*_*jda 9

您可以更改已批准的金额或完全撤销它(仅限未使用的金额)。但您无法收回已发送的转账。

approve()功能的一个常见用例是在 DEX(去中心化交易所)上进行交易。例如,您批准 DEX 合约地址使用您的 USDT 代币。当您想购买 XYZ 代币(针对 USDT)时,DEX 只需从您的地址中提取已批准的 USDT 并向您发送 XYZ 代币。