Repository navigation
fix(data): render Plutus data in toString and toJSON - #727
Open
emmanuel-musau wants to merge 1 commit into
Open
emmanuel-musau wants to merge 1 commit into
emmanuel-musau wants to merge 1 commit into
Conversation
This branch has not been deployed
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
toStringthrewDo not know how to serialize a BigInton anyInlineDatum,UTxO,TxOut,TransactionOutputorRedeemerwhose data held an integer or a constructor. TheirtoJSONreturned the data as it is, andInspectable.formatis a plainJSON.stringify. Data without integers rendered wrongly: the byte stringabas{"0": 171}and the map{1: 2}as{}.The new
Data.toJSONreturns data in the encoded formDataSchemaalready writes: an integer as a decimal string, a byte string as hex, a map as[key, value]pairs and a constructor as{ index, fields }.InlineDatum,Redeemer,RedeemerMapandTransactionWitnessSetuse it, which also fixesTxOut,UTxOandBabbageTransactionOutputthrough the datum.RedeemerValue, whichRedeemerMap.getreturns, had notoJSONand gains one.BabbageTransactionOutput.toStringthrew on every output, datum or not, becauseValue.toJSONreturnedcoinas abigint. It now writescoinas a decimal string, asMultiAssetalready writes quantities.console.logandutil.inspectstill show the data itself, withbigintintegers andUint8Arraybytes. The changeset is a minor, sincetoJSON().dataandtoJSON().coinchange type.In this form an integer and a byte string can render the same,
Data.int(12n)and the bytes12both as"12", and an empty map and an empty list both as[]. It only affects display; CBOR, hashes and transaction ids do not go throughtoJSON.Closes #685