Here is my project phase 2 - flipcoin. It was a fight but it seems, I made it! 
https://github.com/tomas819/flipcoin
I must say, it is not easy to develop smart contracts⦠I had several issues on the project :-/
Here are some points:
-
the truffle-hdwallet-provider was not working, I had to use ānpm install @truffle/hdwallet-providerā
-
the Ganache GUI is very slow or just stops working. The GUI is basically not necessary, it is sufficient to use only cli
-
using the constructor (for provable):
constructor() public {
provable_setProof(proofType_Ledger);
}
was causing the following error by the deployment on my local network, on the ropsten testnet it was OK
āFlipcoinā hit a require or revert statement somewhere in its constructor. Try:
*Verifying that your constructor params satisfy all require conditions.
*Adding reason strings to your require statements.
-
by deploying on ropsten testnet I received a few times this error (which, what I found, was caused by Infura)
Error: PollingBlockTracker - encountered an error while attempting to update latest block:
Error: ETIMEDOUT
-
testing on the ropsten testnet is very slow, sometimes I had to wait several minutes for the response from the oracle
In the end, it is a good experience!
Now, I started the course about smart contract security, so I will keep working on the project. And sure, there is a space for some improvements, for example funding the contract in advance, etc.
Also, it would be good to upgrade it to the latest version of solidity - here I expect some challenges, because what I saw in the documentation, there are many things already deprecated⦠this area is evolving really fast!