Zurzeit kämpfe ich damit, eine einfache Transaktion durchzuführen oder Pool-Rewards zu claimen.
Ich benutze die Anleitung von CoinCash, was bis anhin ohne Probleme geklappt hat.
Was sich noch gegenüber früher geändert hat, das noch ein NFT in meinem Wallet drin ist.
Wenn ich nach Anleitung die Transaktion durchführe, erhalte ich folgenden Fehler:
Der Fehler “ValueNotConservedUTxO” sagt gemäss Cardano aus, das Input != Output sein soll.
Dies ist aber hier nicht der Fall. Die Berechnung scheint zu stimmen, da diese Beträge im Stacktrace gleich sind (grün markiert).
Was aber glaube ich den Fehler verursacht, ist der rote markierte Teil. Ich kann aber nicht genau sagen, was genau den Fehler verursacht. Dieser Rote markierte Teil ist ein Teil von einer Policy-ID des NFT.
Hast Du richtig erkannt. “Value” sind nicht nur die ADA, sondern auch die Native Token. Wenn im Input welche sind (oder gemintet werden), müssen sie auch im Output sein (oder verbrannt werden).
Naja, falsch nicht wirklich. Sie gehen halt davon aus, dass ein SPO keine komischen Native Token auf seinen Stake-Pool-Verwatltungs-Adressen rumfliegen hat.
Und statt zu erklären, was Du machen musst, nämlich alles (inklusive Native Token) aus den Inputs aufaddieren und dann auf Outputs und Fee verteilen, geben sie Dir diesen while read -r utxo; do-Code-Schnipsel zum Kopieren, den kaum jemand versteht und der halt nur mit reinen ADA klar kommt.
Füge einfach das NFT einem der Outputs hinzu, damit es auch irgendwohin gesendet wird.
Okay, „einfach“ ist vielleicht ein bisschen übertrieben, also lieber nochmal im Detail:
Eine --tx-out-Option wird zusammengesetzt aus:
--tx-out <Adresse>+<Lovelace>+<Anzahl> <Policy-ID>.<Name in Hex>+<Anzahl> <Policy-ID>.<Name in Hex>+…
Das ist, was die Coincashew-Anleitung mit
--tx-out $(cat payment.addr)+${txOut} \
macht. Da sie sich nicht um Native Token kümmert, ist es halt ein bisschen einfacher und sie müssen nur die Anzahl Lovelace aus der Variable ${txOut} hinzufügen.
Das kannst Du, da es nur ein Token ist, relativ leicht ersetzen durch:
Da müssen jetzt Anführungszeichen drumrum, weil zwischen der Anzahl (1) und der Policy-ID (b8e9…4359) ein Leerzeichen ist und Deine Shell das sonst als zwei getrennte Argumente an cardano-cli geben würde, womit das dann nichts anfangen kann.
Das sollte die Transaktion in diesem Fall schon reparieren. Achte darauf, dass Du das sowohl beim ersten build-raw vor der Berechnung der Fee als auch beim zweiten, der dann die endgültige Transaktion baut, machen musst. Das verändert die Größe der Transaktion und damit die Fee wohl doch schon wesentlich.