Contract-Invocation
兩個地址之間的合約轉賬,從第三個地址支付gas
場景是從地址B轉賬到地址C,從地址中扣除交易費用。
這裡A會有一些乙太量,應該用來扣除氣體。
from
ERC20 代幣標準有一個方法 transferFrom ,它將to
和amount
作為輸入。這裡有什麼意義
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。