如何将代币从合约转移到 EtherDelta

How to transfer token to EtherDelta from a contract

我正在尝试使用合约从 EtherDelta 交易所存入、trade/order 和提取代币和以太币。我的理解是,最好的方法是创建一个 ether delta 函数的接口,并在我的合约中创建一个真实的 EtherDelta 实例。然而,我要处理的问题是,假设我将合约中的代币存入 EtherDelta,我相信 EtherDelta 注意到 msg.sender 作为这些代币的所有者。我怎样才能让合约成为所有者,即使它是调用我合约上的 depositToEtherDelta 函数的用户?我试图让合同成为所有者,而不是调用合同功能的人。请帮忙,谢谢。

我猜你在混淆 msg.sender 和 tx.origin tx.origin 是调用该函数的用户,但如果您的合约调用 EtherDelta 合约,则应正确设置 msg.sender

顺便说一下,不推荐使用 tx.origin。最好通过函数参数(this关键字)传播原点。