Contract.new() Promise wird nie mit truffle-contract aufgelöst

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.

Antworten (1)

scheint das Problem hier schon besprochen zu haben:

https://github.com/trufflesuite/truffle-contract/issues/70