Solidity

ERC20.transferFrom 和 IERC20.transferFrom 有什麼區別?

  • March 6, 2022

在我的契約中呼叫這些乙太幣做同樣的事情。那有什麼區別呢?

ERC20(tokenAddress).transferFrom(msg.sender, address(this), amount);

IERC20(tokenAddress).transferFrom(msg.sender, address(this), amount);

我認為 IERC20 只是介面,所以我必須自己實現該功能。但是兩者都在地址之間轉移令牌。

我可能有記憶體問題,還是他們實際上做同樣的事情?

在這種情況下,它們同樣有效。

但是 ERC20 與 IERC20 的不同之處在於它導入了整個合約 API,而不是公共位。

當您使用 IERC20 時,您意外綁定到自定義功能的可能性為零。這就是為什麼它更好。您的目標是使用更小的界面,這樣可以保持設計更簡潔。

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