以下代码是波场JavaScript的授权方法,这个目前来说是没问题,但是我想要让toAddress不是个人地址,而是合约地址。
因为合约地址没有私钥,所以我想要用合约创建者来执行transferfrom函数
我想要知道怎么改写toAddress这个合约的transferfrom的Solidity代码。
请问这么写有问题吗
function transferFrom(address sender, address recipient, uint256 amount) external override returns (bool) { require(sender == owner, "Only owner can use transferFrom"); require(_allowances[sender][msg.sender] >= amount, "Allowance exceeded"); _allowances[sender][msg.sender] -= amount; _transfer(sender, recipient, amount); return true; }
你的概念理解错了,javascript code 跟你理解的一样,把 toAddress 改成合约地址就可以了; 不过合约 (toAddress)的 solidity代码不需要有transferfrom function, 需要的是一个类似于 transfer 的函数。我们可以把这个函数叫做 transferTokenA,他的代码应该类似于下面:
contract YourContract {
// Define tokenA here
function transferTokenA(address recipient, uint256 amount) public {
tokenA.transfer(recipient, amount);
}
}