I've been working on a front end for a project and have been trying to understand ethers. My problem is that I need to Mint a coin to the persons wallet who has chosen to mint it on the front end. I cannot get my head around how to accomplish this bc of ethers wallet creation. It requires a private key to create a wallet and a wallet is the only way that I have found to be able to sign transactions in ether and proceed with the transaction successfully. How would I create a wallet using the current connected metamask wallet to sign the transaction. I dont want to ask for their private key for security reasons. Is there something that I am missing?
const signer = provider.getSigner(accounts); contract = contract.connect(signer); const estGas = await contract.estimateGas.AddToWhitelist(['0x353f4592E1f131CaC58c369fA9758ea37283DAf6'],['1']); const item = await contract.populateTransaction.AddToWhitelist(['0x353f4592E1f131CaC58c369fA9758ea37283DAf6'],['1']); item.gasLimit = estGas; item.gasPrice = await provider.getGasPrice(); item.nonce = await provider.getTransactionCount(wallet.address); const signed = await signer.signTransaction(item); const submitted = await provider.sendTransaction(signed); const approveReceipt = await submitted.wait();
The above code is an example where the signer is not able to sign the transaction because of an error stating "signing transactions is unsupported".