Contract-Invocation

兩個地址之間的合約轉賬,從第三個地址支付gas

  • September 19, 2018

場景是從地址B轉賬到地址C,從地址中扣除交易費用。

這裡A會有一些乙太量,應該用來扣除氣體。

fromERC20 代幣標準有一個方法 transferFrom ,它將toamount作為輸入。

這裡有什麼意義from,它是否總是必須是簽署交易的人(如果是,那麼有兩個方法transfer和背後的原因是什麼transferFrom)?或者它可以是不同的地址?

transferFrom方法僅在所有者(_from地址)允許接收者(_to 地址)提取資金時才有效,這是通過呼叫來完成的function approve(address _spender, uint256 _value)

呼叫 transfer(或 transferFrom)函式的地址將是為操作支付 gas 的地址。

因此,如果 B call approve(address_C, 10),將不會進行資金轉移,但 B 仍需要為此操作支付一些 gas。

然後,A 可以呼叫 transferFrom(address_B, address_C, 10) 並從 B 向 C 發送資金,並且只有 A 會為交易費用支付 gas。

引用自:https://ethereum.stackexchange.com/questions/41977