diff --git a/.changeset/cold-clubs-doubt.md b/.changeset/cold-clubs-doubt.md deleted file mode 100644 index f6e663be..00000000 --- a/.changeset/cold-clubs-doubt.md +++ /dev/null @@ -1,11 +0,0 @@ ---- -"@evolution-sdk/evolution": patch ---- - -Add transaction chaining support via `SignBuilder.chainResult()` - -- Add `chainResult()` method to `SignBuilder` for building dependent transactions -- Returns `ChainResult` with `consumed`, `available` UTxOs and pre-computed `txHash` -- Lazy evaluation with memoization - computed on first call, cached for subsequent calls -- Add `signAndSubmit()` convenience method combining sign and submit in one call -- Remove redundant `chain()`, `chainEffect()`, `chainEither()` methods from TransactionBuilder diff --git a/.changeset/common-ways-occur.md b/.changeset/common-ways-occur.md deleted file mode 100644 index 611d7b17..00000000 --- a/.changeset/common-ways-occur.md +++ /dev/null @@ -1,18 +0,0 @@ ---- -"@evolution-sdk/evolution": patch ---- - -### Native Scripts & Multi-Sig Support - -- **`addSigner` operation**: Add required signers to transactions for multi-sig and script validation -- **Native script minting**: Full support for `ScriptAll`, `ScriptAny`, `ScriptNOfK`, `InvalidBefore`, `InvalidHereafter` -- **Reference scripts**: Use native scripts via `readFrom` instead of attaching them to transactions -- **Multi-sig spending**: Spend from native script addresses with multi-party signing -- **Improved fee calculation**: Accurate fee estimation for transactions with native scripts and reference scripts - -### API Changes - -- `UTxO.scriptRef` type changed from `ScriptRef` to `Script` for better type safety -- `PayToAddressParams.scriptRef` renamed to `script` for consistency -- Wallet `signTx` now accepts `referenceUtxos` context for native script signer detection -- Client `signTx` auto-fetches reference UTxOs when signing transactions with reference inputs diff --git a/.changeset/long-deer-roll.md b/.changeset/long-deer-roll.md deleted file mode 100644 index b90c4e54..00000000 --- a/.changeset/long-deer-roll.md +++ /dev/null @@ -1,50 +0,0 @@ ---- -"@evolution-sdk/devnet": patch -"@evolution-sdk/evolution": patch ---- - -### TxBuilder setValidity API - -Add `setValidity()` method to TxBuilder for setting transaction validity intervals: - -```ts -client.newTx() - .setValidity({ - from: Date.now(), // Valid after this Unix time (optional) - to: Date.now() + 300_000 // Expires after this Unix time (optional) - }) - .payToAddress({ ... }) - .build() -``` - -- Times are provided as Unix milliseconds and converted to slots during transaction assembly -- At least one of `from` or `to` must be specified -- Validates that `from < to` when both are provided - -### slotConfig support for devnets - -Add `slotConfig` parameter to `createClient()` for custom slot configurations: - -```ts -const slotConfig = Cluster.getSlotConfig(devnetCluster) -const client = createClient({ - network: 0, - slotConfig, // Custom slot config for devnet - provider: { ... }, - wallet: { ... } -}) -``` - -Priority chain for slot config resolution: -1. `BuildOptions.slotConfig` (per-transaction override) -2. `TxBuilderConfig.slotConfig` (client default) -3. `SLOT_CONFIG_NETWORK[network]` (hardcoded fallback) - -### Cluster.getSlotConfig helper - -Add `getSlotConfig()` helper to derive slot configuration from devnet cluster genesis: - -```ts -const slotConfig = Cluster.getSlotConfig(cluster) -// Returns: { zeroTime, zeroSlot, slotLength } -``` diff --git a/docs/CHANGELOG.md b/docs/CHANGELOG.md index f4ad2b42..88f0d276 100644 --- a/docs/CHANGELOG.md +++ b/docs/CHANGELOG.md @@ -1,5 +1,13 @@ # docs +## 0.0.14 + +### Patch Changes + +- Updated dependencies [[`c59507e`](https://github.com/IntersectMBO/evolution-sdk/commit/c59507eafd942cd5bce1d3608c9c3e9c99a4cac8), [`9ddc79d`](https://github.com/IntersectMBO/evolution-sdk/commit/9ddc79dbc9b6667b3f2981dd06875878d9ad14f5), [`0730f23`](https://github.com/IntersectMBO/evolution-sdk/commit/0730f2353490ff1fa75743cccc0d05b33cff1b23)]: + - @evolution-sdk/evolution@0.3.7 + - @evolution-sdk/devnet@1.1.7 + ## 0.0.13 ### Patch Changes diff --git a/docs/package.json b/docs/package.json index ab14cc96..c047d8ac 100644 --- a/docs/package.json +++ b/docs/package.json @@ -1,6 +1,6 @@ { "name": "docs", - "version": "0.0.13", + "version": "0.0.14", "private": true, "type": "module", "scripts": { diff --git a/packages/evolution-devnet/CHANGELOG.md b/packages/evolution-devnet/CHANGELOG.md index 9adbc73b..52288e96 100644 --- a/packages/evolution-devnet/CHANGELOG.md +++ b/packages/evolution-devnet/CHANGELOG.md @@ -1,5 +1,58 @@ # @evolution-sdk/devnet +## 1.1.7 + +### Patch Changes + +- [#109](https://github.com/IntersectMBO/evolution-sdk/pull/109) [`0730f23`](https://github.com/IntersectMBO/evolution-sdk/commit/0730f2353490ff1fa75743cccc0d05b33cff1b23) Thanks [@solidsnakedev](https://github.com/solidsnakedev)! - ### TxBuilder setValidity API + + Add `setValidity()` method to TxBuilder for setting transaction validity intervals: + + ```ts + client.newTx() + .setValidity({ + from: Date.now(), // Valid after this Unix time (optional) + to: Date.now() + 300_000 // Expires after this Unix time (optional) + }) + .payToAddress({ ... }) + .build() + ``` + + - Times are provided as Unix milliseconds and converted to slots during transaction assembly + - At least one of `from` or `to` must be specified + - Validates that `from < to` when both are provided + + ### slotConfig support for devnets + + Add `slotConfig` parameter to `createClient()` for custom slot configurations: + + ```ts + const slotConfig = Cluster.getSlotConfig(devnetCluster) + const client = createClient({ + network: 0, + slotConfig, // Custom slot config for devnet + provider: { ... }, + wallet: { ... } + }) + ``` + + Priority chain for slot config resolution: + 1. `BuildOptions.slotConfig` (per-transaction override) + 2. `TxBuilderConfig.slotConfig` (client default) + 3. `SLOT_CONFIG_NETWORK[network]` (hardcoded fallback) + + ### Cluster.getSlotConfig helper + + Add `getSlotConfig()` helper to derive slot configuration from devnet cluster genesis: + + ```ts + const slotConfig = Cluster.getSlotConfig(cluster) + // Returns: { zeroTime, zeroSlot, slotLength } + ``` + +- Updated dependencies [[`c59507e`](https://github.com/IntersectMBO/evolution-sdk/commit/c59507eafd942cd5bce1d3608c9c3e9c99a4cac8), [`9ddc79d`](https://github.com/IntersectMBO/evolution-sdk/commit/9ddc79dbc9b6667b3f2981dd06875878d9ad14f5), [`0730f23`](https://github.com/IntersectMBO/evolution-sdk/commit/0730f2353490ff1fa75743cccc0d05b33cff1b23)]: + - @evolution-sdk/evolution@0.3.7 + ## 1.1.6 ### Patch Changes diff --git a/packages/evolution-devnet/package.json b/packages/evolution-devnet/package.json index 266a43d4..099461ee 100644 --- a/packages/evolution-devnet/package.json +++ b/packages/evolution-devnet/package.json @@ -1,6 +1,6 @@ { "name": "@evolution-sdk/devnet", - "version": "1.1.6", + "version": "1.1.7", "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 5dc5dc99..33ec9120 100644 --- a/packages/evolution/CHANGELOG.md +++ b/packages/evolution/CHANGELOG.md @@ -1,5 +1,75 @@ # @evolution-sdk/evolution +## 0.3.7 + +### Patch Changes + +- [#112](https://github.com/IntersectMBO/evolution-sdk/pull/112) [`c59507e`](https://github.com/IntersectMBO/evolution-sdk/commit/c59507eafd942cd5bce1d3608c9c3e9c99a4cac8) Thanks [@solidsnakedev](https://github.com/solidsnakedev)! - Add transaction chaining support via `SignBuilder.chainResult()` + - Add `chainResult()` method to `SignBuilder` for building dependent transactions + - Returns `ChainResult` with `consumed`, `available` UTxOs and pre-computed `txHash` + - Lazy evaluation with memoization - computed on first call, cached for subsequent calls + - Add `signAndSubmit()` convenience method combining sign and submit in one call + - Remove redundant `chain()`, `chainEffect()`, `chainEither()` methods from TransactionBuilder + +- [#110](https://github.com/IntersectMBO/evolution-sdk/pull/110) [`9ddc79d`](https://github.com/IntersectMBO/evolution-sdk/commit/9ddc79dbc9b6667b3f2981dd06875878d9ad14f5) Thanks [@solidsnakedev](https://github.com/solidsnakedev)! - ### Native Scripts & Multi-Sig Support + - **`addSigner` operation**: Add required signers to transactions for multi-sig and script validation + - **Native script minting**: Full support for `ScriptAll`, `ScriptAny`, `ScriptNOfK`, `InvalidBefore`, `InvalidHereafter` + - **Reference scripts**: Use native scripts via `readFrom` instead of attaching them to transactions + - **Multi-sig spending**: Spend from native script addresses with multi-party signing + - **Improved fee calculation**: Accurate fee estimation for transactions with native scripts and reference scripts + + ### API Changes + - `UTxO.scriptRef` type changed from `ScriptRef` to `Script` for better type safety + - `PayToAddressParams.scriptRef` renamed to `script` for consistency + - Wallet `signTx` now accepts `referenceUtxos` context for native script signer detection + - Client `signTx` auto-fetches reference UTxOs when signing transactions with reference inputs + +- [#109](https://github.com/IntersectMBO/evolution-sdk/pull/109) [`0730f23`](https://github.com/IntersectMBO/evolution-sdk/commit/0730f2353490ff1fa75743cccc0d05b33cff1b23) Thanks [@solidsnakedev](https://github.com/solidsnakedev)! - ### TxBuilder setValidity API + + Add `setValidity()` method to TxBuilder for setting transaction validity intervals: + + ```ts + client.newTx() + .setValidity({ + from: Date.now(), // Valid after this Unix time (optional) + to: Date.now() + 300_000 // Expires after this Unix time (optional) + }) + .payToAddress({ ... }) + .build() + ``` + + - Times are provided as Unix milliseconds and converted to slots during transaction assembly + - At least one of `from` or `to` must be specified + - Validates that `from < to` when both are provided + + ### slotConfig support for devnets + + Add `slotConfig` parameter to `createClient()` for custom slot configurations: + + ```ts + const slotConfig = Cluster.getSlotConfig(devnetCluster) + const client = createClient({ + network: 0, + slotConfig, // Custom slot config for devnet + provider: { ... }, + wallet: { ... } + }) + ``` + + Priority chain for slot config resolution: + 1. `BuildOptions.slotConfig` (per-transaction override) + 2. `TxBuilderConfig.slotConfig` (client default) + 3. `SLOT_CONFIG_NETWORK[network]` (hardcoded fallback) + + ### Cluster.getSlotConfig helper + + Add `getSlotConfig()` helper to derive slot configuration from devnet cluster genesis: + + ```ts + const slotConfig = Cluster.getSlotConfig(cluster) + // Returns: { zeroTime, zeroSlot, slotLength } + ``` + ## 0.3.6 ### Patch Changes diff --git a/packages/evolution/package.json b/packages/evolution/package.json index b24d91dd..6320c7a8 100644 --- a/packages/evolution/package.json +++ b/packages/evolution/package.json @@ -1,6 +1,6 @@ { "name": "@evolution-sdk/evolution", - "version": "0.3.6", + "version": "0.3.7", "description": "A modern TypeScript SDK for Cardano blockchain development", "type": "module", "main": "./dist/index.js",