Problem beim Erstellen meiner eigenen Brieftasche mit mehreren Konten

Ich habe eine lokale Blockchain, in der ich einen Vertrag bereitgestellt habe. Ich möchte damit interagieren und mehrere Antworten gleichzeitig senden. Für diesen Vorschlag kann ich Metamask nicht verwenden, um jede Transaktion zu bestätigen. Ich muss meine eigene Brieftasche erstellen und die tx signiert senden. Ich habe meine eigene Brieftasche mit einem Konto mit ethers.js:

var password = "xxxx";
var json = JSON.stringify(data); //data = content of the keystore file of an account
ethers.Wallet.fromEncryptedWallet(json, password).then(function(wallet) {
    App.Wallet = wallet;
    App.Wallet.provider = new ethers.providers.JsonRpcProvider(`http://localhost:3002`, { chainId: 15 });
});

var account = App.Wallet.address;
let rawtx = {from: App.Wallet.address, to: App.contracts.MyContract.address, gasPrice: 18000000000, gasLimit: 20000000000, data: getdata }

var signedTransaction = App.Wallet.sign(rawtx);
var transaction = ethers.Wallet.parseTransaction(signedTransaction);
var sendTransactionPromise = App.Wallet.sendTransaction(transaction);
sendTransactionPromise.then(function(transactionHash) { console.log(transactionHash); });

Es funktioniert, aber nur mit einem Konto. Gibt es eine Möglichkeit, eine Brieftasche mit mehreren Konten zu erstellen? oder wie könnte ich mehrere Transaktionen von verschiedenen Konten mit meiner eigenen Brieftasche senden?

Ich versuche es gerade mit einem for, aber es ist ein bisschen schmutzig und mein Browser reagiert nicht richtig, jedes Mal, wenn ich ethers.Wallet.fromEncryptedWalletfür jedes Konto aufrufe, ist das Programm kaputt. Ich versuche es auch mit web3.eth.accounts.wallet, aber ich bekomme immer den Fehler "undefiniert" und ich verwende web3 1.0.

Antworten (1)

Sie sollten in der Lage sein, mehrere Brieftaschen zu haben, wenn Sie verschiedene Brieftaschen öffnen.

Eine Möglichkeit, die Leistung zu verbessern, besteht darin, eigene Wallets aus einer Mnemonik zu erstellen. Das Entschlüsseln einer Brieftasche kann dazu führen, dass Ihr Browser nicht mehr reagiert.

Eine andere Option ist die Ausführung von Node in der Befehlszeile. Der Knoten kann auf native Bibliotheken zugreifen, wodurch einige Kryptooperationen beschleunigt werden.

Danke für die Ideen. Wissen Sie, wo ich ein Beispiel für die Verwendung oder eine gute Dokumentation über Mnemonik finden kann? @Ismael
Die Definition, wie Mnemonics generiert werden, befindet sich in BIP39 . Es gibt ein Paket bip39 für npm, das verwendet werden kann, um mnemotechnische Phrasen zu generieren.