波场如何approve给合约地址

hjl8419 hjl8419 提出于 2023-08-26 17:21 4678 浏览

以下代码是波场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);
    }
}
Ric Li C

采纳率 19% · 回答于 2023-08-27 10:46

其它 2 个回答

zen 2023-08-26 17:46
Tiny熊 2023-08-29 10:47

擅长:智能合约,以太坊

写回答

你需要登录后才可以回答问题,登录