2017-07-28 86 views

回答

0

有很多可能的方法來實現這一點。一個可能的快速和骯髒的解決辦法是檢查是否通過調用下面就合同的地址存在ERC20功能:

eth.call({to:contractAddress, data:web3.sha3("balanceOf(address)")}) 

非ERC20會返回一個「空」 0x六角響應,而一個ERC20會給你一個32byte uint,在這種情況下爲0,但如果您在數據中提供了一個地址,那麼它將爲您提供該地址的實際令牌餘額。

這不是確定合同是ERC20的保證方式,因爲其他合同可能會公開相同的功能,但它是一個快速而簡單的檢查。您可以在totalSupply()等添加額外的電話以獲得更多確認。

+0

我在想這裏的eth是什麼? –

+0

客戶端API https://web3js.readthedocs.io/en/1.0/web3-eth.html#call –

相關問題