allowance,approve 和 transferFrom,这几个函数提供了一些高级功能,用于授权其他以太坊地址的所有者(spender)代表你使用你的token。这个“其他以太坊地址”可能是一个智能合约,也可能只是一个普通token账户。
● approve函数。Token所有者可以调用这个函数授权spender代表它使用value数量的token。
● allowance 函数。此函数被用来查看owner给spender的token额度
● transferFrom函数。spender可以调用此函数来执行转账,转账金额不应超过其被授权的额度。
应用场景 Uniswap
ERC-20 有个approve 函数,通过这个函数允许别人(地址或合约)将你限定的金额转走。一旦允许,那对方可以在任何时候转钱。
参考
[转][Uniswap v2 合约代码解析] UniswapV2 ERC20合约代码_0x6e71edae12b1b97f4d1f60370fef10105fa2faae0126114a_zhoujianwei的博客-CSDN博客
metamask - What exact rights I'm giving to Uniswap when accepting "Allow the Uniswap Protocol to use your XXX" - Ethereum Stack Exchange