Wallets

有沒有辦法只驗證乙太坊錢包地址?

  • November 29, 2021

我對加密貨幣不是很熟悉,但我需要以某種方式驗證乙太坊錢包地址。我找到了一種方法,但它也接受令牌合約地址。那麼有沒有辦法區分它們,只允許錢包地址而不是合約地址

如果你使用web3你可以使用這種方式

web3_instance.eth.getCode(address).then(function (code) {
   if (code === "0x") {
       // this address is account
   }
})

我不太確定是否有用於 C++ 的 web3 庫,但另一種方法是使用Etherscan API來實現這一點。您需要註冊並獲取您的 api 密鑰,然後您才能在一定限制下使用 Etherscan API。

這就是你將如何建構你的GET 請求

https://api.etherscan.io/api?module=contract&action=getabi&address=<YOUR_ADDRESS>&apikey=<YOUR_API_KEY>

<YOUR_ADDRESS>您將要驗證的地址在哪裡, <YOUR_API_KEY>value 是您將從 Etherscan API 接收的密鑰。

您將從請求中收到的兩個主要響應是:

不是智能合約的地址-{"status":"0","message":"NOTOK","result":"Contract source code not verified"}

以及作為智能合約的地址-{"status": "1","message": "OK","result": <ABI_DEFENITION_OF_THE_CONTRACT>}

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