So I don't know if this is a silly/obvious question or not but after many hours I turn to the community for help. So for the past few days I've been writing my own C++ code to take an input public key and generate a wallet address. It is for a project I am doing to compare different methods of different blockchains. I was using the Keccak function provided by the Keccak Project library, but I was not getting identical results with what the Ethereum project produces, for the life of me I couldn't figure out why my code wasn't working, and after days of debugging and head scratching I finally discovered that the keccak256 function used in the Ethereum project is different to the official function. On I went and got down the Solidity library from Github (https://github.com/ethereum/solidity) and changed my code to work with it. I am hitting a roadblock though.

ConverterETH.cpp:63:38: error: 'keccak256' is not a member of 'solidity' 63 | solidity::bytes hash = solidity::keccak256(publicKeyBytes);

I can see that in Keccak256.cpp and keccak256.h (from Solidity) That the function Keccak256() is used but no where have I found where it's DEFINED. So of course I'll get errors. It has not helped me at all that it used to be knows as sha3? And that the code files where sha3 USED to be defined are no longer the same. Over the past few days I have learned more about the history of Ethereum than I ever wanted to know because of this single function lol. If anyone can point me in the right direction I'll be forever grateful



Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge that you have read and understand our privacy policy and code of conduct.

Browse other questions tagged or ask your own question.