通过合约将代币从一个地址发送到另一个地址
Send token from addressA to addressB through contract
我正在尝试在我的合约中执行一个功能,当有人使用它时:
- 它得到 tokenX_v1 余额 msg.sender,
- 从我的合约中发送相同数量的 tokenX_v2,
- 将他的tokenX_v1发送到我的合约或刻录地址。
第 1 部分和第 2 部分我是这样做的:
function query_oldBalance(address _adrs) view public returns (uint) {
address _tokenAddress = "tokenV1"
return IERC20(_tokenAddress).balanceOf(_adrs);
function myfunction() public {
_tokenTransfer(address(this),msg.sender,query_oldBalance(msg.sender) , false);
直到这里它都按预期工作,但现在我需要从 msg.sender 中删除 tokenV1,我想进行转账以将其发送到合约或销毁地址,但是当我尝试做一个 transferFrom 我得到:
execution reverted: ERC20: transfer amount exceeds allowance
即使我将津贴用于更多我试图转移的东西
如果我尝试正常转账,我得到 "execution reverted: Transfer amount exceeds the maxTxAmount.
同样的结果,我尝试将 maxtxamount 设置为比我尝试转账的代币大得多的数字。关于津贴,
我不确定津贴和批准是如何工作的,以及在这种情况下我是否需要它,但这是我尝试过的:
IERC20(_tokenAddress).allowance(msg.sender, address(this));
IERC20(_tokenAddress).approve(address(this),query_oldBalance(msg.sender)); //tried with this multiplied by 10 same story
我真的不明白如何通过合约将 addressA 到 addressB 代币转移。希望有人能帮助我谢谢。
IERC20(_tokenAddress).transferFrom(msg.sender, address(this), old_balance);
在调用此函数之前,用户应在旧代币合约上批准新代币的地址
我正在尝试在我的合约中执行一个功能,当有人使用它时:
- 它得到 tokenX_v1 余额 msg.sender,
- 从我的合约中发送相同数量的 tokenX_v2,
- 将他的tokenX_v1发送到我的合约或刻录地址。
第 1 部分和第 2 部分我是这样做的:
function query_oldBalance(address _adrs) view public returns (uint) {
address _tokenAddress = "tokenV1"
return IERC20(_tokenAddress).balanceOf(_adrs);
function myfunction() public {
_tokenTransfer(address(this),msg.sender,query_oldBalance(msg.sender) , false);
直到这里它都按预期工作,但现在我需要从 msg.sender 中删除 tokenV1,我想进行转账以将其发送到合约或销毁地址,但是当我尝试做一个 transferFrom 我得到:
execution reverted: ERC20: transfer amount exceeds allowance
即使我将津贴用于更多我试图转移的东西
如果我尝试正常转账,我得到 "execution reverted: Transfer amount exceeds the maxTxAmount.
同样的结果,我尝试将 maxtxamount 设置为比我尝试转账的代币大得多的数字。关于津贴,
我不确定津贴和批准是如何工作的,以及在这种情况下我是否需要它,但这是我尝试过的:
IERC20(_tokenAddress).allowance(msg.sender, address(this));
IERC20(_tokenAddress).approve(address(this),query_oldBalance(msg.sender)); //tried with this multiplied by 10 same story
我真的不明白如何通过合约将 addressA 到 addressB 代币转移。希望有人能帮助我谢谢。
IERC20(_tokenAddress).transferFrom(msg.sender, address(this), old_balance);
在调用此函数之前,用户应在旧代币合约上批准新代币的地址