我正在尝试为用户构建一个无代码工具,我希望能够代表用户转移令牌。
每当我调用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弹出窗口,要求用户签名交易。