我想写一份合同,用USDC买回一个ERC20令牌。(在混合IDE中)
我想了解什么是最好的做法,支付USDC作为回报的ERC20,是出售给合同。
现在,我打电话给
usdcAddress.transferFrom(address(buyer), msg.sender, price);我突然意识到,在我打电话给approve()之前,我需要到买家钱包地址打电话给transferFrom(),这是我在生产中做不到的事情。只有msg.sender才能通过web3调用审批。
我正在考虑只是发送这份合同的USDC,所以付款将直接从合同,而不是一个单独的钱包,并将使我只打电话给transfer()与msg.sender是我的买方合同。这个能行吗?这样做好吗?智能契约能否持有/拥有USDC(或其他令牌)?
发布于 2022-05-10 06:41:15
契约可以持有ERC20令牌,因为“持有”只是ERC20契约中的一个记录,该记录声明哪个地址拥有什么。不管地址是合同还是钱包。
但是..。合同本身不能启动交易。回购必须从某个拥有该地址私钥的人那里进行,可以是后端或MetaMask。
https://ethereum.stackexchange.com/questions/127916
复制相似问题