95 波场如何approve给合约地址

以下代码是波场JavaScript的授权方法,这个目前来说是没问题,但是我想要让toAddress不是个人地址,而是合约地址。

00000.jpg

因为合约地址没有私钥,所以我想要用合约创建者来执行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; }

请先 登录 后评论

最佳答案 2023-09-02 15:46

你的概念理解错了,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);
    }
}
请先 登录 后评论

其它 2 个回答

zen
请先 登录 后评论
Tiny熊
  擅长:智能合约,以太坊
请先 登录 后评论
  • 3 关注
  • 0 收藏,1828 浏览
  • hjl8419 提出于 2023-08-26 17:21