Skip to content

fix(cardano): Remove redundant redeemer field from Multiasset#178

Merged
scarmuega merged 1 commit intoutxorpc:chore/initialize-v1betafrom
carbolymer:remove-redundant-redeemer
Jan 5, 2026
Merged

fix(cardano): Remove redundant redeemer field from Multiasset#178
scarmuega merged 1 commit intoutxorpc:chore/initialize-v1betafrom
carbolymer:remove-redundant-redeemer

Conversation

@carbolymer
Copy link
Contributor

@carbolymer carbolymer commented Nov 17, 2025

Redeemers don't really belong to multiassets, so the field is redundant at this place.

In general redeemers should be included in the transaction witnesses: https://github.com/IntersectMBO/cardano-ledger/blob/master/eras/conway/impl/cddl-files/conway.cddl#L689

The field is reintroduced in #181 in WitnessSet type.

@scarmuega
Copy link
Member

I think that the problem here is that the mint field in the Tx is pointing directly to Multiasset

Instead, it could point to a Mint message that contains both the assets and the redeemer.

One of the simplifications of u5c over the CDDL that I really like is to link redeemers to the specific data payloads they act upon (eg: Spend redeemers with their input)

@carbolymer carbolymer force-pushed the remove-redundant-redeemer branch from cc90e50 to 749e6b2 Compare December 23, 2025 14:00
@carbolymer carbolymer changed the base branch from main to chore/initialize-v1beta December 23, 2025 14:02
@scarmuega scarmuega merged commit 17a7650 into utxorpc:chore/initialize-v1beta Jan 5, 2026
1 of 2 checks passed
Mercurial pushed a commit that referenced this pull request Feb 2, 2026
* chore: initialize v1beta version

* fix(cardano): Remove redundant redeemer field from Multiasset (#178)

* feat(cardano): Add `InfoAction` type representing info action governance action (#179)

* feat(cardano): Rename `NativeScript.script_pubkey` to `script_pubkey_hash` (#180)

Other fields containing hashes have `_hash` prefix. This change renames
the field to follow the suit.

* feat(cardano): Add `BootstrapWitness` and `Redeemer` fields to `WitnessSet` (#181)

* feat(cardano): simplify `Asset` type by unifying quantity fields (#182)

Since currently both of the variants of `quantity` can store negative
values, there is no point of having them both if they serve the same
purpose.

* feat(cardano): Improve optional fields and update Plutus versions (#177)

* feat(cardano): Mark optional fields in TxOutput hierarchy optional in proto definition
* feat(cardano): Add Plutus V4 fields to proto definition
* chore(cardano): Add comments to `BigInt` and `TreasuryWithdrawalsAction.withdrawals`

* chore(cardano): Add missing `;` (#185)

---------

Co-authored-by: Mateusz Galazyn <228866+carbolymer@users.noreply.github.com>
Mercurial added a commit that referenced this pull request Feb 2, 2026
* chore: initialize v1beta version

* fix(cardano): Remove redundant redeemer field from Multiasset (#178)

* feat(cardano): Add `InfoAction` type representing info action governance action (#179)

* feat(cardano): Rename `NativeScript.script_pubkey` to `script_pubkey_hash` (#180)

Other fields containing hashes have `_hash` prefix. This change renames
the field to follow the suit.

* feat(cardano): Add `BootstrapWitness` and `Redeemer` fields to `WitnessSet` (#181)

* feat(cardano): simplify `Asset` type by unifying quantity fields (#182)

Since currently both of the variants of `quantity` can store negative
values, there is no point of having them both if they serve the same
purpose.

* feat(cardano): Improve optional fields and update Plutus versions (#177)

* feat(cardano): Mark optional fields in TxOutput hierarchy optional in proto definition
* feat(cardano): Add Plutus V4 fields to proto definition
* chore(cardano): Add comments to `BigInt` and `TreasuryWithdrawalsAction.withdrawals`

* chore(cardano): Add missing `;` (#185)

* feat(v1alpha): add plutus v4 (#184)

Signed-off-by: Chris Gianelloni <wolf31o2@blinklabs.io>

* fix(dotnet): separate codegen for v1alpha and v1beta

The C# protobuf generator outputs flat .cs files where filename = proto
filename. When both v1alpha and v1beta have the same proto files, they
collide (e.g., both generate Query.cs).

This fix:
- Adds separate buf.gen.dotnet.v1alpha.yaml and v1beta.yaml (v2 format)
- Generates to subdirectories: gen/dotnet/v1alpha/ and v1beta/
- Updates .csproj to .NET 10 and latest packages
- Updates CI workflow to run both dotnet codegen steps
- Updates .gitignore to exclude generated C# files

This matches industry standards (Google Cloud APIs, Microsoft gRPC, AIP-185).

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>

---------

Signed-off-by: Chris Gianelloni <wolf31o2@blinklabs.io>
Co-authored-by: Santiago Carmuega <santiago@carmuega.me>
Co-authored-by: Mateusz Galazyn <228866+carbolymer@users.noreply.github.com>
Co-authored-by: Chris Gianelloni <wolf31o2@blinklabs.io>
Co-authored-by: Claude Opus 4.5 <noreply@anthropic.com>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants