Repository navigation
ci(changesets): version packages - #708
Merged
Merged
Conversation
github-actions
Bot
force-pushed
the
changeset-release/main
branch
3 times, most recently
from
October 28, 2026 02:30
12e0b73 to
ce79b72
Compare
github-actions
Bot
force-pushed
the
changeset-release/main
branch
from
October 28, 2026 02:37
ce79b72 to
1ac9899
Compare
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.
This PR was opened by the Changesets release GitHub action. When you're ready to do a release, you can merge this and the packages will be published to npm automatically. If you're not ready to do a release yet, that's fine, whenever you add more changesets to main, this PR will be updated.
Releases
@evolution-sdk/evolution@0.8.0
Minor Changes
#707
cd6c9d4Thanks @solidsnakedev! - The transaction builder now spends outputs that hold a datum hash.collectFromtakes the datum of each such input in a newdatumsfield, andbuild({ onMissingDatum: "provider" })fetches the missing ones withprovider.getDatum. Before, the builder left the datum out of the witness set, and the node rejected the spend.A spend of a datum-hash output at a Plutus script address now fails at
build()when its datum is neither given nor fetched, and the error names each such input. Code that added the datum to the built transaction by hand should pass it tocollectFrominstead.The
onMissingDatum: "provider"lookup only finds datums an earlier transaction published, and outputs this SDK locks never publish theirs. For those, keep the datum and pass it tocollectFrom.getDatumkeeps the bytes it fetched, throughOriginalBytes. The witness set and the script data hash write a datum with those bytes, whatever the codec options say, because the datum hash covers them. A datum without recorded bytes is written with theplutusDataoptions, as before.TransactionWitnessSetkeeps each datum as the same object when it is built from another witness set, so the recorded bytes survive signing.SignBuilder.assemblekeeps the transaction's own datums and drops the datums of the given witness sets, since the body's script data hash covers only its own.TxBuilderStatehas a newdatumsfield.#667
04c4541Thanks @nemo83! - Support Plutus builtin IDs 87–105 (Plutus 1.72.0.0; 101–105 are not yet enabled on any protocol version) and Flat constants for native Value and arrays in UPLC decoding, encoding, and parameter application. Scripts produced by Aiken v1.1.24 can now round-trip and accept parameters without failing on the new builtins or Value constants. This adds serialization support only; it does not enable builtins on a network or evaluate scripts.Represent arrays with
{ array: elementType }and an{ items: [...] }payload. Represent native Value constants with the exportedValueConstanttype:{ entries: [{ currency: Uint8Array, tokens: [{ name: Uint8Array, quantity: bigint }] }] }. Encoding and decoding reject unordered or duplicate keys, keys longer than 32 bytes, empty token maps, zero quantities, and quantities outside the signed 128-bit range. Encoding also rejects wrongly shaped Value and array payloads with aUPLCError.BLS12-381 type tags 9–11 now decode as the types
BLS12_381_G1_Element,BLS12_381_G2_ElementandBLS12_381_MlResult, as in Plutus, so an empty list or array of BLS elements round-trips, as in themultiScalarMulconformance programs. Decoding or encoding a BLS element itself still throws, because Plutus gives these elements no Flat form.Constant type decoding now matches Plutus's
decodeKindedUni. A missing type tag was previously read asUnit, so[]decoded as a unit and a truncated application such as[7, 5]as a list of units, and a single trailing0tag was ignored, so[0, 0]decoded as an integer. Both are now rejected, because re-encoding them changed the script bytes. Previously every type containing tag 12 or 13 was rejected, because arrays and Value were not supported.Patch Changes
#706
79ee853Thanks @solidsnakedev! - The Blockfrost provider now reports an output that holds a datum hash with aDatumHashdatum option, as Koios, Maestro and Kupmios do. Before,getUtxos,getUtxosWithUnit,getUtxoByUnitandgetUtxosByOutReffetched the datum behind each hash and returned it as anInlineDatum, so the UTxO did not match the chain. Re-encoding such a UTxO wrote an inline datum where the chain holds a hash, and the builder could not see that spending it needs the datum in the witness set. Code that read a hash output's datum fromdatumOption.datashould callgetDatum(datumHash)instead. The UTxO queries also make one request fewer for each datum-hash output.#702
0092febThanks @nemo83! - UPLC Flat decoding now rejectsconstrandcaseterms in a program whose version is below 1.1.0, as Plutus'sdecodeTermdoes. It also reads theconstrtag as Plutus's Word64 decoder does, rejecting a value of 2^64 or more and an encoding longer than ten 7-bit chunks. Before, such programs decoded without error. The encoder now refusesconstrandcasebefore 1.1.0 andconstrtags above 2^64 - 1; before, it wrote e.g.(program 1.0.0 (constr 0))as0100008001, which Plutus cannot decode.Program version components are now read and written as Flat naturals, as in Plutus. Before, each was a single byte, so a component of 128 or more was misread, and one of 256 or more was truncated:
257.0.0was written as1.0.0. Versions with every component below 128 encode to the same bytes as before.@evolution-sdk/aiken-uplc@2.0.23
Patch Changes
79ee853,cd6c9d4,0092feb,04c4541]:@evolution-sdk/devnet@3.0.24
Patch Changes
79ee853,cd6c9d4,0092feb,04c4541]:@evolution-sdk/scalus-uplc@2.0.23
Patch Changes
79ee853,cd6c9d4,0092feb,04c4541]: