Why would we disrespect your work? You're clearly interested and making an effort, and that's always a good thing
I sent you a merit because i'd like it if you stayed in the community, we're always interested in people that show the willingless to learn!
That being said, there are a couple things in your diagram that strike me as odd:
1) you have a loop between "mine blockchain for reward" and "is hash legit". This is true, but the loop should actually go back even further: As soon as your node receives a new block, it should be verified and you should start your mining process all over. The way your flow diagram is created now will continue mining UNTILL you find a valid header, EVEN if you receive new, valid blocks
2) the "fetch the miner's wallet" isn't 100% correct terminology, but even if we disregard this, the step is not placed in the correct place: when mining, you're searching for a nonce for which the sha256d hash of the header is under the current target. The block header you're iterating over contains the merkle root right from the start, so you should know which address you want to be funded if you solve a block BEFORE you start hashing.
3) it's perfectly possible to use an address that's not belonging to your wallet to receive the coinbase reward... There is no need to "add reward to miner's wallet"
Solo mining is basically:Building an utxo set and filling your mempool with unconfirmed transactions
=>
Receive a new block, update your utxo db and mempool
=>
Select the top 1Mb (not countig witness data) transactions from your mempool and create a block. Add the coinbase transaction funding your own address with the current block reward + fees from the selected transactions (fee = sum of the value of all the inputs minus the sum of the value of all the outputs)
=>
create the block header (including the hash of the previous's block header, the root of the merkle tree of all tx's selected in the previous step, the nonce and some extra data)
=>
Iterate over the nonce untill you find a block header whose sha256d hash is under the current target OR untill a new valid block is received by your node (if you receive a new valid block, go back to the second step of this list)
A secondary loop should continue receiving broadcasted transactions to keep filling your mempool
pool mining is basically:The last step of solo mining