I have done a lot of research regarding the working of web3 and the new library called ether.js, Also how the seed phase work in the creation of wallet and addresses and the Hierarchical Deterministic wallet, All the bitcoin improvement proposals - bip-32, 39, and 44.
Now, My ultimate aim is to make my own version of Metamask and just to be sure I want do get some clarification:
Metamask is a cryptocurrency wallet that generates and maintains your different accounts in your wallet and also offers an in-house functionality to transfer funds -- right?
Metamask acts both as a signer(as it stores your credentials for transaction signing) and a provider(as it gives you the local web3 instance and reference to different test-net and the main-net) -- right?
I went through the Metamask GitHub page and tried my best to get something out of the code, but I was unfamiliar with the tech they have used in accomplishing these functionalities.
Now I want to know how I can make my own version of Metamask. As:
Transaction building and signing are possible but retrieving estimate gas, nonce, and other stuff and creating a Tx and making an async call.
Making a wallet involves generating a seed value and further account creation and other things. I guess all the complicated maths behind the scenes are taken care of by the functions(that we will use) itself.
But all this is theoretical, how can I proceed, practically.
All I know is it takes patience, research, and lot of learning ,and I am ready to give it all. Please Help!