Ich bin auf ein Problem mit der folgenden Funktion gestoßen:
public async createNoteWeb3() {
let bank = await this.bank.at(this.bankAddress);
try {
let note = await this.note.new(this.bankAddress,{from: this.user.address});
let status = await bank.addNote.sendTransaction(this.bankAddress,{from: this.user.address});
let status2 = await bank.addNote.sendTransaction(this.bankAddress,{from: this.user.address});
console.log('Status: ' + status);
} catch (e) {
console.log(e);
}
this.getNotesWeb3();
}
status2 dient nur zu Testzwecken. Normalerweise sollte der erste Status note.address statt this.bankAddress als Parameter nehmen.
Beim Auskommentieren der „Let Note“-Zeile oder beim Ablehnen der ersten Metamask-Anforderung für die Vertragserstellung erscheinen jedoch die folgenden beiden Transaktionen nacheinander oder der „Catch“-Teil wird angezeigt. Aber wenn ich die Vertragserstellung akzeptiere, wird keine Folgetransaktion angezeigt. Im Log ist auch kein Fehler.
Irgendwelche Ratschläge, wie man damit umgeht?
(Trüffel-Vertrag auf der Trüffel-Entwicklerkette mit Metamaske in Chrom)
update: Es sieht so aus, als ob das Promise nie aufgelöst wird, wenn die Funktion new() erfolgreich ist. Lehne ich die Vertragserstellung ab, springt der Code in den „Fang“-Teil.
scheint das Problem hier schon besprochen zu haben: