From a23c222bcbdf55124ce4967d7a2c3ff2af238fe6 Mon Sep 17 00:00:00 2001 From: "github-actions[bot]" <41898282+github-actions[bot]@users.noreply.github.com> Date: Fri, 13 Nov 2026 08:07:21 +0000 Subject: [PATCH] ci(changesets): version packages --- .changeset/assets-dotted-unit.md | 9 --------- .changeset/body-unmodelled-key.md | 5 ----- .changeset/native-scripts-json-slot-range.md | 7 ------- .changeset/transaction-output-deprecated.md | 7 ------- packages/aiken-uplc/CHANGELOG.md | 7 +++++++ packages/aiken-uplc/package.json | 2 +- packages/evolution-devnet/CHANGELOG.md | 9 +++++++++ packages/evolution-devnet/package.json | 2 +- packages/evolution/CHANGELOG.md | 20 ++++++++++++++++++++ packages/evolution/package.json | 2 +- packages/scalus-uplc/CHANGELOG.md | 7 +++++++ packages/scalus-uplc/package.json | 2 +- 12 files changed, 47 insertions(+), 32 deletions(-) delete mode 100644 .changeset/assets-dotted-unit.md delete mode 100644 .changeset/body-unmodelled-key.md delete mode 100644 .changeset/native-scripts-json-slot-range.md delete mode 100644 .changeset/transaction-output-deprecated.md diff --git a/.changeset/assets-dotted-unit.md b/.changeset/assets-dotted-unit.md deleted file mode 100644 index bcc38dd9a..000000000 --- a/.changeset/assets-dotted-unit.md +++ /dev/null @@ -1,9 +0,0 @@ ---- -"@evolution-sdk/evolution": patch ---- - -`Assets.getByUnit` reads a dotted unit (`policyId.assetName`), which `Assets.fromUnit` has always accepted. The two disagreed: a value built from a dotted unit answered `0n` when read back with that same string, because the reader sliced the dotted text at 56 characters. `0n` reads as "this asset is not here", so the disagreement was silent. `fromUnit`, `fromRecord` and `getByUnit` now share one parse, and a dot cannot occur in hex, so both spellings stay unambiguous. - -The same shared parse reads a unit case-insensitively. `Bytes.fromHex` accepts either case, so `fromUnit` built an asset from an uppercase unit that `getByUnit` then answered `0n` for, because it compares against `PolicyId.toHex`, which emits lowercase. `getUnits` still emits the canonical lowercase spelling. - -⚠️ `Assets.fromUnit` accepts one input it rejected before: the concatenated spelling `policyId` followed by `assetName` with no dot, which is what `getUnits` emits. Sharing the parse means a dotless unit longer than 56 characters now splits at 56, where before the whole string was taken as the policy id and failed with a `PolicyId` parse error. diff --git a/.changeset/body-unmodelled-key.md b/.changeset/body-unmodelled-key.md deleted file mode 100644 index 8ea6f4950..000000000 --- a/.changeset/body-unmodelled-key.md +++ /dev/null @@ -1,5 +0,0 @@ ---- -"@evolution-sdk/evolution": patch ---- - -Decoding a transaction body refuses a key the schema does not model, instead of dropping it. The decoder reads its fields by key, so a key it never reads is absent from the result and missing from the re-encode: measured on a mainnet transaction, a body given one extra key went in at 1271 bytes and came back out as the original 1268, byte for byte, with nothing raised, as a different transaction with a different id. Every valid Conway body key is modelled, so an unmodelled key is either a pre-Conway field this schema cannot represent or a field from a newer era, and carrying the bytes through would let a wallet sign a field it cannot display. diff --git a/.changeset/native-scripts-json-slot-range.md b/.changeset/native-scripts-json-slot-range.md deleted file mode 100644 index e04dd9354..000000000 --- a/.changeset/native-scripts-json-slot-range.md +++ /dev/null @@ -1,7 +0,0 @@ ---- -"@evolution-sdk/evolution": patch ---- - -`NativeScripts.toJSON` refuses a `slot` or `required` outside ±`Number.MAX_SAFE_INTEGER` instead of truncating it. The cardano-cli JSON form carries both as JSON numbers, so a `uint64` slot above 2^53-1 has no exact representation in it, and `Number(slot)` returned a different slot with no error; `required` is an `int64` the ledger allows to be negative, so the lower bound is reachable the same way. A script decoded from the chain may carry either, so this was reachable on read, not only when authoring a script. The refusal is the module's `NativeScriptError`, so callers can catch it by tag. - -`NativeScript`'s `Hash.symbol` now hashes the variant structurally instead of routing through `toJSON`, so such a script still hashes and compares. The structural hash also hashes a key hash from its bytes rather than its container, which keeps `Equal.equals` true for a `Buffer` and a `Uint8Array` over the same bytes. diff --git a/.changeset/transaction-output-deprecated.md b/.changeset/transaction-output-deprecated.md deleted file mode 100644 index b8399465d..000000000 --- a/.changeset/transaction-output-deprecated.md +++ /dev/null @@ -1,7 +0,0 @@ ---- -"@evolution-sdk/evolution": patch ---- - -`TransactionOutput` is deprecated in favour of `TxOut`. It is a second, parallel model of a transaction output (`address: AddressEras`, `amount: Value`, a Shelley and a Babbage class) while `TxOut` carries the one `TransactionBody`, the builders and the sdk use (`address: Address`, `assets: Assets`, one class for both eras). Both are public under names that give no hint which is which, and they reject each other: an output built with `TransactionOutput` cannot go into a `TransactionBody`. Nothing is removed or re-pointed, so no caller breaks. - -Every export of the module carries the tag, each naming its `TxOut` counterpart, since TypeScript cannot deprecate a namespace re-export and a tag on the module alone reaches no caller. diff --git a/packages/aiken-uplc/CHANGELOG.md b/packages/aiken-uplc/CHANGELOG.md index f0284d0d4..d8fef99a2 100644 --- a/packages/aiken-uplc/CHANGELOG.md +++ b/packages/aiken-uplc/CHANGELOG.md @@ -1,5 +1,12 @@ # @evolution-sdk/aiken-uplc +## 2.0.24 + +### Patch Changes + +- Updated dependencies [[`7a25bcd`](https://github.com/IntersectMBO/evolution-sdk/commit/7a25bcd26917ccea1e80698ac70f39b7e3c67df7), [`36dd2e4`](https://github.com/IntersectMBO/evolution-sdk/commit/36dd2e47e894a48da007c3113b88c5e5e569257c), [`cd2d9b3`](https://github.com/IntersectMBO/evolution-sdk/commit/cd2d9b377ab93f196d539f1bca41abc985687e5d), [`1d9c06a`](https://github.com/IntersectMBO/evolution-sdk/commit/1d9c06a257779fd54a7f791a50a90c447771301b)]: + - @evolution-sdk/evolution@0.8.1 + ## 2.0.23 ### Patch Changes diff --git a/packages/aiken-uplc/package.json b/packages/aiken-uplc/package.json index fe90c11b9..9b46282e9 100644 --- a/packages/aiken-uplc/package.json +++ b/packages/aiken-uplc/package.json @@ -1,6 +1,6 @@ { "name": "@evolution-sdk/aiken-uplc", - "version": "2.0.23", + "version": "2.0.24", "description": "Aiken UPLC evaluator for Evolution SDK with WASM-based local script evaluation", "type": "module", "main": "./dist/index.js", diff --git a/packages/evolution-devnet/CHANGELOG.md b/packages/evolution-devnet/CHANGELOG.md index c09147a5e..eec2d5075 100644 --- a/packages/evolution-devnet/CHANGELOG.md +++ b/packages/evolution-devnet/CHANGELOG.md @@ -1,5 +1,14 @@ # @evolution-sdk/devnet +## 3.0.25 + +### Patch Changes + +- Updated dependencies [[`7a25bcd`](https://github.com/IntersectMBO/evolution-sdk/commit/7a25bcd26917ccea1e80698ac70f39b7e3c67df7), [`36dd2e4`](https://github.com/IntersectMBO/evolution-sdk/commit/36dd2e47e894a48da007c3113b88c5e5e569257c), [`cd2d9b3`](https://github.com/IntersectMBO/evolution-sdk/commit/cd2d9b377ab93f196d539f1bca41abc985687e5d), [`1d9c06a`](https://github.com/IntersectMBO/evolution-sdk/commit/1d9c06a257779fd54a7f791a50a90c447771301b)]: + - @evolution-sdk/evolution@0.8.1 + - @evolution-sdk/aiken-uplc@2.0.24 + - @evolution-sdk/scalus-uplc@2.0.24 + ## 3.0.24 ### Patch Changes diff --git a/packages/evolution-devnet/package.json b/packages/evolution-devnet/package.json index 951b0b670..68d8868fb 100644 --- a/packages/evolution-devnet/package.json +++ b/packages/evolution-devnet/package.json @@ -1,6 +1,6 @@ { "name": "@evolution-sdk/devnet", - "version": "3.0.24", + "version": "3.0.25", "description": "Local Cardano devnet for testing and development with Docker", "type": "module", "main": "./dist/index.js", diff --git a/packages/evolution/CHANGELOG.md b/packages/evolution/CHANGELOG.md index 8ba9a7402..3c01c0013 100644 --- a/packages/evolution/CHANGELOG.md +++ b/packages/evolution/CHANGELOG.md @@ -1,5 +1,25 @@ # @evolution-sdk/evolution +## 0.8.1 + +### Patch Changes + +- [#710](https://github.com/IntersectMBO/evolution-sdk/pull/710) [`7a25bcd`](https://github.com/IntersectMBO/evolution-sdk/commit/7a25bcd26917ccea1e80698ac70f39b7e3c67df7) Thanks [@jorbuedo](https://github.com/jorbuedo)! - `Assets.getByUnit` reads a dotted unit (`policyId.assetName`), which `Assets.fromUnit` has always accepted. The two disagreed: a value built from a dotted unit answered `0n` when read back with that same string, because the reader sliced the dotted text at 56 characters. `0n` reads as "this asset is not here", so the disagreement was silent. `fromUnit`, `fromRecord` and `getByUnit` now share one parse, and a dot cannot occur in hex, so both spellings stay unambiguous. + + The same shared parse reads a unit case-insensitively. `Bytes.fromHex` accepts either case, so `fromUnit` built an asset from an uppercase unit that `getByUnit` then answered `0n` for, because it compares against `PolicyId.toHex`, which emits lowercase. `getUnits` still emits the canonical lowercase spelling. + + ⚠️ `Assets.fromUnit` accepts one input it rejected before: the concatenated spelling `policyId` followed by `assetName` with no dot, which is what `getUnits` emits. Sharing the parse means a dotless unit longer than 56 characters now splits at 56, where before the whole string was taken as the policy id and failed with a `PolicyId` parse error. + +- [#709](https://github.com/IntersectMBO/evolution-sdk/pull/709) [`36dd2e4`](https://github.com/IntersectMBO/evolution-sdk/commit/36dd2e47e894a48da007c3113b88c5e5e569257c) Thanks [@jorbuedo](https://github.com/jorbuedo)! - Decoding a transaction body refuses a key the schema does not model, instead of dropping it. The decoder reads its fields by key, so a key it never reads is absent from the result and missing from the re-encode: measured on a mainnet transaction, a body given one extra key went in at 1271 bytes and came back out as the original 1268, byte for byte, with nothing raised, as a different transaction with a different id. Every valid Conway body key is modelled, so an unmodelled key is either a pre-Conway field this schema cannot represent or a field from a newer era, and carrying the bytes through would let a wallet sign a field it cannot display. + +- [#711](https://github.com/IntersectMBO/evolution-sdk/pull/711) [`cd2d9b3`](https://github.com/IntersectMBO/evolution-sdk/commit/cd2d9b377ab93f196d539f1bca41abc985687e5d) Thanks [@jorbuedo](https://github.com/jorbuedo)! - `NativeScripts.toJSON` refuses a `slot` or `required` outside ±`Number.MAX_SAFE_INTEGER` instead of truncating it. The cardano-cli JSON form carries both as JSON numbers, so a `uint64` slot above 2^53-1 has no exact representation in it, and `Number(slot)` returned a different slot with no error; `required` is an `int64` the ledger allows to be negative, so the lower bound is reachable the same way. A script decoded from the chain may carry either, so this was reachable on read, not only when authoring a script. The refusal is the module's `NativeScriptError`, so callers can catch it by tag. + + `NativeScript`'s `Hash.symbol` now hashes the variant structurally instead of routing through `toJSON`, so such a script still hashes and compares. The structural hash also hashes a key hash from its bytes rather than its container, which keeps `Equal.equals` true for a `Buffer` and a `Uint8Array` over the same bytes. + +- [#712](https://github.com/IntersectMBO/evolution-sdk/pull/712) [`1d9c06a`](https://github.com/IntersectMBO/evolution-sdk/commit/1d9c06a257779fd54a7f791a50a90c447771301b) Thanks [@jorbuedo](https://github.com/jorbuedo)! - `TransactionOutput` is deprecated in favour of `TxOut`. It is a second, parallel model of a transaction output (`address: AddressEras`, `amount: Value`, a Shelley and a Babbage class) while `TxOut` carries the one `TransactionBody`, the builders and the sdk use (`address: Address`, `assets: Assets`, one class for both eras). Both are public under names that give no hint which is which, and they reject each other: an output built with `TransactionOutput` cannot go into a `TransactionBody`. Nothing is removed or re-pointed, so no caller breaks. + + Every export of the module carries the tag, each naming its `TxOut` counterpart, since TypeScript cannot deprecate a namespace re-export and a tag on the module alone reaches no caller. + ## 0.8.0 ### Minor Changes diff --git a/packages/evolution/package.json b/packages/evolution/package.json index 1d131d770..0d866c8bd 100644 --- a/packages/evolution/package.json +++ b/packages/evolution/package.json @@ -1,6 +1,6 @@ { "name": "@evolution-sdk/evolution", - "version": "0.8.0", + "version": "0.8.1", "description": "A modern TypeScript SDK for Cardano blockchain development", "type": "module", "main": "./dist/index.js", diff --git a/packages/scalus-uplc/CHANGELOG.md b/packages/scalus-uplc/CHANGELOG.md index 02c4c99e9..4bf592ff3 100644 --- a/packages/scalus-uplc/CHANGELOG.md +++ b/packages/scalus-uplc/CHANGELOG.md @@ -1,5 +1,12 @@ # @evolution-sdk/scalus-uplc +## 2.0.24 + +### Patch Changes + +- Updated dependencies [[`7a25bcd`](https://github.com/IntersectMBO/evolution-sdk/commit/7a25bcd26917ccea1e80698ac70f39b7e3c67df7), [`36dd2e4`](https://github.com/IntersectMBO/evolution-sdk/commit/36dd2e47e894a48da007c3113b88c5e5e569257c), [`cd2d9b3`](https://github.com/IntersectMBO/evolution-sdk/commit/cd2d9b377ab93f196d539f1bca41abc985687e5d), [`1d9c06a`](https://github.com/IntersectMBO/evolution-sdk/commit/1d9c06a257779fd54a7f791a50a90c447771301b)]: + - @evolution-sdk/evolution@0.8.1 + ## 2.0.23 ### Patch Changes diff --git a/packages/scalus-uplc/package.json b/packages/scalus-uplc/package.json index e6a7a40ef..aa4b8b943 100644 --- a/packages/scalus-uplc/package.json +++ b/packages/scalus-uplc/package.json @@ -1,6 +1,6 @@ { "name": "@evolution-sdk/scalus-uplc", - "version": "2.0.23", + "version": "2.0.24", "description": "Scalus UPLC evaluator adapter for Evolution SDK", "type": "module", "main": "./dist/index.js",