Discuss: PlutusTx Eq instance generation should delegate to BuiltinData equality
Nessuno ha ancora preso questa issue.
Valutazione
- Difficoltà
- 5/5
- Tempo stimato
- Più di una settimana
- Idoneità per principianti
- 25/100
- Tipo di issue
- Funzionalità
- Chiarezza
- Da chiarire
- Stato di attività
- Ferma
- Stack tecnologico
- haskell
- Ambito
- blockchain, tooling
Direzione di ricerca
Esamina la generazione esistente delle istanze Eq di PlutusTx e confrontala con l’approccio all’uguaglianza di PlutusData mostrato nell’issue. Leggi l’implementazione referenziata in plutus-ledger-api/src/PlutusLedgerApi/V2/Tx.hs, quindi stabilisci come debbano essere specificate le rappresentazioni canoniche per tipi come Set e Map prima di decidere cosa costituisca il completamento.
Scritto dal modello di indicizzazione a partire dal testo della issue.
Descrizione
In Plutarch the general consensus is that we perform Eq by simply delegating to the underling PlutusData representation.
instance PEq FooTrivial where
(#==) = \l r -> pdata l #== pdata r
PlutusData equality operation is a builtin which is naturally much more performant then doing the obvious field by field comparisons (which is done in PlutusTx PLA types and is generally a practice adopted https://github.com/IntersectMBO/plutus/blob/b34d6ca2c4bbe54c324337eb813a5f6a522b475c/plutus-ledger-api/src/PlutusLedgerApi/V2/Tx.hs#L84).
However, we do assume that there's a single canonical PlutusData representation for all types, which might not be the case for semantically richer types like Set or Map (for example, the underlying AssocMap PlutusData representation can use ascending or descending ordering etc). This is solved by agreeing on a well defined PlutusData representation for any type that might be ambiguous in that regard.
cc @peter-mlabs
- Lingua principale
- Haskell
- Stelle
- 33
- Fork
- 1
- Metriche di merge delle PR
- Nessuna PR unita negli ultimi 30g
Preparare l'ambiente
- Nessun Dockerfile né file Docker Compose
- Nessun modello di pull request
- Leggi la guida per i contributori
Come iniziare
- Leggi tutta la issue e poi la guida ai contributi del progetto.
- Commenta sulla issue per dire che te ne occupi tu — evita che due persone facciano lo stesso lavoro.
- Fai un fork del repository e lavora su un branch.
- Apri una pull request che faccia riferimento al numero della issue.
Altre issue di mlabs-haskell/lambda-buffers
-
Difficoltà 4/5 3-5 giorni Idoneità per principianti 25/100
mlabs-haskell/lambda-buffers#296 ·
-
Difficoltà 5/5 Più di una settimana Idoneità per principianti 20/100
mlabs-haskell/lambda-buffers#295 ·
-
Difficoltà 4/5 3-5 giorni Idoneità per principianti 20/100
mlabs-haskell/lambda-buffers#294 ·
-
Dykstra HFAperta
Difficoltà 4/5 3-5 giorni Idoneità per principianti 35/100
mlabs-haskell/lambda-buffers#293 ·
-
Nix-free pathApertadevops
Difficoltà 5/5 Più di una settimana Idoneità per principianti 25/100
mlabs-haskell/lambda-buffers#292 ·
Tutte le issue di mlabs-haskell/lambda-buffers
Issue simili
-
status: needs triage type: enhancement
Difficoltà 1/5 Meno di un'ora Idoneità per principianti 90/100
haskell/haskell-language-server#5128 ·
I maintainer di solito rispondono entro 1 giorno
-
enhancement
Difficoltà 2/5 1-3 ore Idoneità per principianti 62/100
alunduil/siren-json.hs#246 ·
I maintainer di solito rispondono entro 1 giorno
-
frontend Hackathon
Difficoltà 2/5 1-3 ore Idoneità per principianti 72/100
flora-pm/flora-server#1334 · 1 commento ·
I maintainer di solito rispondono entro 1 giorno
-
question
Difficoltà 1/5 Meno di un'ora Idoneità per principianti 75/100
NixOS/SC-election-2026#44 · 1 reazione ·
I maintainer di solito rispondono entro 1 giorno
-
enhancement good first issue hacktoberfest runner
Difficoltà 2/5 1-3 ore Idoneità per principianti 82/100