Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Release 0.4.0-beta #191

Merged
merged 1 commit into from
May 11, 2024
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
82 changes: 82 additions & 0 deletions CHANGELOG.md
Original file line number Diff line number Diff line change
@@ -1,3 +1,85 @@

# 0.4.0-beta - 11th May 2024

## General

- Feat: Created a new experimental package `@marlowe.io/marlowe-template` that helps to share the parameters used in the creation of a Marlowe contract. ([PR-184](https://github.com/input-output-hk/marlowe-ts-sdk/pull/184))

- Feat: **Initial Account Deposits Feature Integration (Runtime v1.0.0):**

- **Purpose:** This update introduces the capability for users to make initial deposits into their accounts upon creation. This feature aims to streamline the account setup process and enhance user experience.
- **Benefits:** This feature squashes the Contract Creation and Initial Input Deposits into 1 transaction instead of multiple ones.

- Feat: **Introduction of a New Contract API in the Runtime Lifecycle API:**
- **Purpose:** The addition of a new Contract API is designed to provide developers with more flexibility and control (contract instance concept) over smart contract management within the runtime environment.
- **Benefits:** Developers can now leverage enhanced functionalities for deploying, updating, and interacting with smart contracts. This API simplifies complex contract operations and supports more robust smart contract development.

## @marlowe.io/wallet

- Feat: Added a `@marlowe.io/wallet/peer-connect` module to enable mobile support by adapting to the [cardano-peer-connect](https://github.com/fabianbormann/cardano-peer-connect) library. ([PR-179](https://github.com/input-output-hk/marlowe-ts-sdk/pull/179))

## @marlowe.io/language-examples

- Feat: `Atomic swap v2` : Simplified version using the new runtime `v1.0.0` feature (`initial account deposits`)
- see end-to-end tests for examples (e.g : `swap.ada.token.e2e.spec.ts`)

## @marlowe.io/runtime-rest-client

- `mkRestClient` provides optional `strict` parameter for performing dynamic type checking in `RestClient` methods. ([PR-180](https://github.com/input-output-hk/marlowe-ts-sdk/pull/180))
- **BREAKING CHANGE** The following `RestClient` methods use a keyword argument object instead of positional arguments. ([PR-180](https://github.com/input-output-hk/marlowe-ts-sdk/pull/180))
- `createContractSources`
- `getContractById`
- `submitContract`
- `getTransactionsForContract`
- `submitContractTransaction`
- `getContractTransactionById`
- `getWithdrawalById`
- `submitWithdrawal`

- Feat: `initial account deposits` (runtime v1.0.0) for Contract Creation (`BuildCreateContractTxRequest` via `buildCreateContractTx`):([PR-188](https://github.com/input-output-hk/marlowe-ts-sdk/pull/188))

## @marlowe.io/runtime-core

- Feat: Added AddressBech32 validation using the lucid library ([PR-184](https://github.com/input-output-hk/marlowe-ts-sdk/pull/184))
- Fix: Added proper type guards to Metadata ([PR-184](https://github.com/input-output-hk/marlowe-ts-sdk/pull/184))

- Fix: Branding of ContractId and TxId ([PR-185](https://github.com/input-output-hk/marlowe-ts-sdk/pull/185))

- Feat: `initial account deposits` (runtime v1.0.0) for Contract Creation ([PR-188](https://github.com/input-output-hk/marlowe-ts-sdk/pull/188)):
- Added `export type AccountDeposits = { [key in AddressOrRole]: AssetsMap };` and associated utility functions.

## @marlowe.io/runtime-lifecycle

- Feat (PLT-9089): Added support for contract bundles in the `lifecycle.contracts.createContract` function. ([PR-167](https://github.com/input-output-hk/marlowe-ts-sdk/pull/167))

- `mkRuntimeLifecycle` provides optional `strict` parameter for performing dynamic type checking in `RestClient` methods. ([PR-180](https://github.com/input-output-hk/marlowe-ts-sdk/pull/180))

- Fix: Temporal fix for converting the cardano time interval to the Marlowe time interval in getInputHistory ([PR-181](https://github.com/input-output-hk/marlowe-ts-sdk/pull/181))

- Feat: Added a new experimental API for computing, simulating and applying the next applicable Actions/Inputs. ([PR-187](https://github.com/input-output-hk/marlowe-ts-sdk/pull/187))
- Doc: Improved package main documentation ([PR-187](https://github.com/input-output-hk/marlowe-ts-sdk/pull/187))

- Feat: New Contract API `packages/runtime/lifecycle/src/generic/new-contract-api.ts` ([PR-188](https://github.com/input-output-hk/marlowe-ts-sdk/pull/188)):
- Generic `waitConfirmation()` : same for contract creation and apply inputs
- Seamless Integration of Applicable Actions API
- simplfied interface (`create` and `load` with a concept of `ContractInstance` object)
- see end-to-end tests for examples (e.g : `swap.ada.token.e2e.spec.ts`)
- Feat: `initial account deposits` feature (runtime v1.0.0) for Contract Creation ([PR-188](https://github.com/input-output-hk/marlowe-ts-sdk/pull/188)):
- new parameter field `accountDeposits` in
- e.g.

```ts
const sellerContractInstance = await sellerLifecycle.newContractAPI.create({
contract: swapContract,
roles: { [scheme.ask.buyer.role_token]: mintRole("OpenRole") },
accountDeposits: mkaccountDeposits([[scheme.offer.seller, seller.assetsProvisioned]]),
});
```

## @marlowe.io/marlowe-object

- **BREAKING CHANGE** Feat: Added Annotations to the contract type. ([PR-181](https://github.com/input-output-hk/marlowe-ts-sdk/pull/181))
- Experimental Feat: Added a sourceMap API to match the annotated marlowe-object source with the ContractClosure. ([PR-181](https://github.com/input-output-hk/marlowe-ts-sdk/pull/181))
# 0.3.0-beta - 18 Jan 2024

The Marlowe team is happy to announce the 0.3.0 release with the following Milestones completed:
Expand Down
9 changes: 5 additions & 4 deletions Readme.md
Original file line number Diff line number Diff line change
Expand Up @@ -24,10 +24,11 @@ It is composed of several npm packages documented in the [API reference](https:/

In order to interact with Marlowe contracts, the **TS-SDK** needs a Runtime instance. The following table shows the compatibility between the SDK and the Runtime versions:

| | runtime v0.0.5 | runtime v0.0.6 |
| ------------------------------------------------------------------------------------------- | :------------: | :------------: |
| [SDK 0.2.0-beta](https://github.com/input-output-hk/marlowe-ts-sdk/releases/tag/0.2.0-beta) | ✓ | x |
| [SDK 0.3.0-beta](https://github.com/input-output-hk/marlowe-ts-sdk/releases/tag/0.3.0-beta) | ✓ | ✓ |
| | runtime v0.0.5 | runtime v0.0.6 | runtime v1.0.0 |
| ------------------------------------------------------------------------------------------- | :------------: | :------------: | :------------: |
| [SDK 0.2.0-beta](https://github.com/input-output-hk/marlowe-ts-sdk/releases/tag/0.2.0-beta) | ✓ | x | x |
| [SDK 0.3.0-beta](https://github.com/input-output-hk/marlowe-ts-sdk/releases/tag/0.3.0-beta) | ✓ | ✓ | x |
| [SDK 0.4.0-beta](https://github.com/input-output-hk/marlowe-ts-sdk/releases/tag/0.4.0-beta) | ✓ | ✓ | ✓ |

To get a running instance of the Runtime, it is recommended to check out the instructions on the [Marlowe Starter Kit](https://github.com/input-output-hk/marlowe-starter-kit)

Expand Down

This file was deleted.

3 changes: 0 additions & 3 deletions changelog.d/20240122_133315_hrajchert_cip45.md

This file was deleted.

16 changes: 0 additions & 16 deletions changelog.d/20240126_162752_bjorn.wilhelm.kihlberg_PLT_9368.md

This file was deleted.

8 changes: 0 additions & 8 deletions changelog.d/20240201_155716_hrajchert_annotations.md

This file was deleted.

8 changes: 0 additions & 8 deletions changelog.d/20240214_142506_hrajchert_marlowe_template.md

This file was deleted.

3 changes: 0 additions & 3 deletions changelog.d/20240222_130945_hrajchert_fix_branded_output.md

This file was deleted.

This file was deleted.

This file was deleted.

14 changes: 7 additions & 7 deletions doc/howToDevelop.md
Original file line number Diff line number Diff line change
Expand Up @@ -206,13 +206,13 @@ And in a separate project you can install the tarballs using a file url when dec
```json
{
"dependencies": {
"@marlowe.io/runtime-lifecycle": "file:<path-to-dist>/marlowe.io-runtime-lifecycle-0.4.0-beta-rc1.tgz",
"@marlowe.io/runtime-rest-client": "file:<path-to-dist>/marlowe.io-runtime-rest-client-0.4.0-beta-rc1.tgz",
"@marlowe.io/adapter": "file:<path-to-dist>/marlowe.io-adapter-0.4.0-beta-rc1.tgz",
"@marlowe.io/runtime-core": "file:<path-to-dist>/marlowe.io-runtime-core-0.4.0-beta-rc1.tgz",
"@marlowe.io/language-core-v1": "file:<path-to-dist>/marlowe.io-language-core-v1-0.4.0-beta-rc1.tgz",
"@marlowe.io/language-examples": "file:<path-to-dist>/marlowe.io-language-examples-0.4.0-beta-rc1.tgz",
"@marlowe.io/wallet": "file:<path-to-dist>/marlowe.io-wallet-0.4.0-beta-rc1.tgz"
"@marlowe.io/runtime-lifecycle": "file:<path-to-dist>/marlowe.io-runtime-lifecycle-0.4.0-beta.tgz",
"@marlowe.io/runtime-rest-client": "file:<path-to-dist>/marlowe.io-runtime-rest-client-0.4.0-beta.tgz",
"@marlowe.io/adapter": "file:<path-to-dist>/marlowe.io-adapter-0.4.0-beta.tgz",
"@marlowe.io/runtime-core": "file:<path-to-dist>/marlowe.io-runtime-core-0.4.0-beta.tgz",
"@marlowe.io/language-core-v1": "file:<path-to-dist>/marlowe.io-language-core-v1-0.4.0-beta.tgz",
"@marlowe.io/language-examples": "file:<path-to-dist>/marlowe.io-language-examples-0.4.0-beta.tgz",
"@marlowe.io/wallet": "file:<path-to-dist>/marlowe.io-wallet-0.4.0-beta.tgz"
}
}
```
Expand Down
2 changes: 1 addition & 1 deletion doc/modules-system.md
Original file line number Diff line number Diff line change
Expand Up @@ -9,7 +9,7 @@ The Marlowe SDK is built using ESM modules but one of its dependencies (fp-ts) d
In most packages documentation you'll find something like:

```html
<script src="https://cdn.jsdelivr.net/gh/input-output-hk/marlowe-ts-sdk@0.4.0-beta-rc1/jsdelivr-npm-importmap.js"></script>
<script src="https://cdn.jsdelivr.net/gh/input-output-hk/marlowe-ts-sdk@0.4.0-beta/jsdelivr-npm-importmap.js"></script>
<script type="module">
import * as wallet from "@marlowe.io/wallet";
// ...
Expand Down
4 changes: 2 additions & 2 deletions doc/versioning-and-releases.md
Original file line number Diff line number Diff line change
Expand Up @@ -10,7 +10,7 @@ The TS-SDK follows a versioning system where, after version 1, it aligns with se

Before version 1, the TS-SDK adheres to beta rules:

- **Beta Versions:** While in the 0.x.x versions, if a breaking change is introduced, the Major version is not incremented; instead, the Minor version is increased. Additionally, these versions will end with the `-beta` suffix, for example `0.4.0-beta-rc1`.
- **Beta Versions:** While in the 0.x.x versions, if a breaking change is introduced, the Major version is not incremented; instead, the Minor version is increased. Additionally, these versions will end with the `-beta` suffix, for example `0.4.0-beta`.

## Release Checklist

Expand Down Expand Up @@ -42,7 +42,7 @@ Before version 1, the TS-SDK adheres to beta rules:
2. **Release Tag:**

- Use git to create and push a release tag.
- `git tag -a 0.4.0-beta-rc1 -m "Release v0.4.0-beta-rc1"`
- `git tag -a 0.4.0-beta -m "Release v0.4.0-beta"`
- `git push --tags`

3. **Packages Build and Publish:**
Expand Down
Loading
Loading