func GetAddressDetailFromBlockchain(address string, client *ethclient.Client) (detail addressdetail.AddressDetail, found bool) {
	detail = addressdetail.NewAddressDetail(address)

	// check for erc721
	if isErc721, detail, _ := IsErc721(address, client); isErc721 {
		return detail, true
	}

	// check for erc20
	if isErc20, detail, _ := IsErc20(address, client); isErc20 {
		return detail, true
	}

	// check if any type of smart contract
	if isContract, _ := IsContract(address, client); isContract {
		detail.Type = addressdetail.AddressTypeOtherContract
		return detail, true
	}

	// return just a wallet
	detail.Type = addressdetail.AddressTypeEOA
	return detail, false
}
// GetAddressDetailFromBlockchain tries to detect an ERC20 / ERC721 token or generic smart contract, and returns an addressdetail.AddressDetail
// with the received details.
GetAddressDetailFromBlockchain tries to detect an ERC20 / ERC721 token or generic smart contract, and returns an addressdetail.AddressDetail
with the received details.
// GetAddressDetailFromBlockchain tries to detect an ERC20 / ERC721 token or generic smart contract and returns an addressdetail . AddressDetail // with the received details .
func GetAddressDetailFromBlockchain(address string, client *ethclient.Client) (detail addressdetail.AddressDetail, found bool) {
	detail = addressdetail.NewAddressDetail(address)
	if isErc721, detail, _ := IsErc721(address, client); isErc721 {
		return detail, true
	}
	if isErc20, detail, _ := IsErc20(address, client); isErc20 {
		return detail, true
	}
	if isContract, _ := IsContract(address, client); isContract {
		detail.Type = addressdetail.AddressTypeOtherContract
		return detail, true
	}
	detail.Type = addressdetail.AddressTypeEOA
	return detail, false
}
func GetAddressDetailFromBlockchain ( address string , client * ethclient . Client ) ( detail addressdetail . AddressDetail , found bool ) { detail = addressdetail . NewAddressDetail ( address ) if isErc721 , detail , _ := IsErc721 ( address , client ) ; isErc721 { return detail , true } if isErc20 , detail , _ := IsErc20 ( address , client ) ; isErc20 { return detail , true } if isContract , _ := IsContract ( address , client ) ; isContract { detail . Type = addressdetail . AddressTypeOtherContract return detail , true } detail . Type = addressdetail . AddressTypeEOA return detail , false }
GetAddressDetailFromBlockchain tries to detect an ERC20 / ERC721 token or generic smart contract, and returns an addressdetail.AddressDetail
with the received details.
GetAddressDetailFromBlockchain tries to detect an ERC20 / ERC721 token or generic smart contract and returns an addressdetail . AddressDetail with the received details .
// check for erc721 // check for erc20 // check if any type of smart contract // return just a wallet