uniswap如何调用审批函数



我正在尝试为用户构建一个无代码工具,我希望能够代表用户转移令牌。

每当我调用IERC20(token address).approve函数时,我的元掩码不会返回像附加图像一样的屏幕,并且IERC20(token address).transferFrom函数不会执行。

审批功能


tps://i.stack.imgur.com/NfyMC.png

在你的合约中调用approve()函数只会批准从你的合约地址中花费代币-不是来自用户。

你需要调用MetaMask弹出从你的前端应用-不从合同。

使用他们的请求方法,用approve()函数的data字段及其参数向令牌合约请求交易。

或者使用更高级的方法:创建web3js, ethers.js或任何您喜欢的库的前端实例,连接到window.ethereum本地提供者,然后从这里调用令牌合约上的approve()函数。这也将打开MetaMask弹出窗口,要求用户签名交易。