Solidity

任何人都可以自由呼叫 ERC223 中的 tokenFallback() 函式嗎?

  • May 28, 2018

既然函式似乎總是以公開的方式實現,那麼不公平的使用者就不能呼叫tokenFallback()接收者合約的函式嗎?

這樣一來,人們就可以讓契約相信他們收到了適當數量的錢,而實際上他們並沒有。

任何人都可以呼叫代幣接收者合約中的tokenFallback函式,但正如ERC223 標准文件中所解釋的那樣,

注意:msg.sender 將是 tokenFallback 函式中的代幣合約。過濾發送哪些代幣(通過代幣合約地址)可能很重要。代幣發送者(發起代幣交易的人)將來自tokenFallback 函式內部。

因此,該tokenFallback函式假定呼叫它的合約地址是 Token 合約的地址。無法偽造 msg.sender,這意味著無法欺騙它認為您是代幣合約。

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