|
1 | 1 | # @evolution-sdk/devnet |
2 | 2 |
|
| 3 | +## 1.1.0 |
| 4 | + |
| 5 | +### Minor Changes |
| 6 | + |
| 7 | +- [#80](https://github.com/IntersectMBO/evolution-sdk/pull/80) [`b52e9c7`](https://github.com/IntersectMBO/evolution-sdk/commit/b52e9c7a0b21c166fe9c3463539a1ff277035ee8) Thanks [@solidsnakedev](https://github.com/solidsnakedev)! - **Restructured module exports** for better modularity and clarity: |
| 8 | + - Replaced monolithic `Devnet` and `DevnetDefault` exports with granular named exports: `Cluster`, `Config`, `Container`, `Genesis`, and `Images` |
| 9 | + - Renamed types: `DevNetCluster` → `Cluster.Cluster`, `DevNetContainer` → `Container.Container` |
| 10 | + - Moved `DEFAULT_SHELLEY_GENESIS` from `DevnetDefault` to `Config` module |
| 11 | + |
| 12 | + **New Features:** |
| 13 | + - **Genesis module** - Calculate and query genesis UTxOs with Cardano's `initialFundsPseudoTxIn` algorithm: |
| 14 | + - `calculateUtxosFromConfig()` - Deterministically compute genesis UTxOs from Shelley genesis configuration using blake2b-256 hashing |
| 15 | + - `queryUtxos()` - Query actual genesis UTxOs from running node via cardano-cli |
| 16 | + - Provides predictable UTxO structure for testing without node interaction |
| 17 | + - **Images module** - Docker image management utilities: |
| 18 | + - `isAvailable()` - Check if Docker image exists locally |
| 19 | + - `pull()` - Pull Docker images with progress logging |
| 20 | + - `ensureAvailable()` - Conditionally pull images only when needed |
| 21 | + |
| 22 | + **Improvements:** |
| 23 | + - Enhanced error handling with specific error reasons (`address_conversion_failed`, `utxo_query_failed`, `utxo_parse_failed`, `image_inspection_failed`, `image_pull_failed`) |
| 24 | + - All operations provide both Effect-based and Promise-based APIs for flexibility |
| 25 | + - Improved test coverage with descriptive cluster names for easier debugging |
| 26 | + - Full Effect error channel integration throughout the package |
| 27 | + |
| 28 | + **Breaking Changes:** |
| 29 | + |
| 30 | + Migration required for existing devnet users: |
| 31 | + |
| 32 | + ```typescript |
| 33 | + // Before |
| 34 | + import { Devnet, DevnetDefault } from "@evolution-sdk/devnet" |
| 35 | + |
| 36 | + const cluster = await Devnet.Cluster.make() |
| 37 | + const config = DevnetDefault.DEFAULT_SHELLEY_GENESIS |
| 38 | + |
| 39 | + // After |
| 40 | + import { Cluster, Config } from "@evolution-sdk/devnet" |
| 41 | + |
| 42 | + const cluster = await Cluster.make() |
| 43 | + const config = Config.DEFAULT_SHELLEY_GENESIS |
| 44 | + ``` |
| 45 | + |
| 46 | + All module functionality remains the same, only import syntax has changed to use destructured named exports from the main package. |
| 47 | + |
3 | 48 | ## 1.0.0 |
4 | 49 |
|
5 | 50 | ### Minor Changes |
|
0 commit comments