Ist es möglich, eine eigene Ethereum-Wallet ohne Metamask zu entwickeln, die sich mit dem Haupt-Ethereum-Netzwerk verbinden sollte? Genau wie in blockchain.info klickt der Benutzer auf das Konto, indem er einfach die E-Mail-Adresse und das Passwort eingibt. Ein Konto wird im Backend erstellt und die Wallet-Adresse wird an die E-Mail-Adresse gesendet. Um über Metamask auf meine Konten zuzugreifen, schreibe ich diesen Code.
const provider = new HDWalletProvider(
'12 mnemonics',
'https://rinkeby.infura.io/authid',
);
const web3 = new Web3(provider);
const accounts = await web3.eth.getAccounts();
console.log('Attempting to deploy contract from ', accounts[1]);
Habe die Antwort auf meine erste Frage 12 Mnemonics aber
Wie rufe ich eine kostenpflichtige Funktion auf, die ohne Metamaske in Solidität geschrieben ist? Ich habe hier eine neue Frage erstellt, wie man Transaktionen ohne Metamaske durchführt
Jetzt ist meine Frage, wie ich die neuen 12 Mnemonics ohne Metamask dynamisch erhalten kann
Sie können das BIP39- npm-Paket verwenden, um mnemonische Zeichen zu generieren.
var mnemonic = bip39.generateMnemonic();
und verwenden Sie diese Mnemonik, um HD Wallet zu generieren.
Wenn Sie web3 verwenden möchten, können Sie web3.eth.accounts.create([entropy]);
Konten lokal generieren. Der Entropieparameter ist optional.
Es gibt so etwas zurück
{
address: "0xb8CE9ab6943e0eCED004cDe8e3bBed6568B2Fa01",
privateKey: "0x348ce564d427a3311b6536bbcff9390d69395b06ed6c486954e971d960fe8709",
signTransaction: function(tx){...},
sign: function(data){...},
encrypt: function(password){...}
}
Sobald Sie dies getan haben, können Sie ETH an diese Adresse senden. Sie müssen die Adresse nicht mit dem Hauptnetzwerk (oder irgendeinem anderen Netzwerk) verbinden. Sie können gültige, echte Konten erstellen, während Sie offline sind. Es gibt keinen Registrierungs- / Anmelde- / Verbindungsvorgang. Das generierte Konto funktioniert in allen Ethereum-Netzwerken.
entropy
Ich habe weitere Informationen über und Hauptnetzwerk
hinzugefügt
kherwa