|
1 |
| -# CEM SDK |
| 1 | +# CEM Script |
2 | 2 |
|
3 | 3 | ## Project pitch
|
4 | 4 |
|
5 |
| -Define and reuse Cardano DApp logic via annotated CEM-machines, resulting in free implementations for: |
| 5 | +CEM Script is a framework to define Cardano DApp logic via annotated CEM-machines, |
| 6 | +resulting in free implementations for: |
6 | 7 |
|
7 | 8 | * On-chain scripts
|
8 |
| -* Tx building/submission/resubmission on L1/emulated testnet |
9 |
| -* Tx parsing/indexing |
| 9 | +* Transaction building/submission (off-chain) |
| 10 | +* Transaction parsing/indexing |
10 | 11 | * Automatically testing invariants
|
11 | 12 | * Human-readable specs
|
12 | 13 |
|
13 |
| -## Building |
| 14 | +## Documentation |
| 15 | + |
| 16 | +* [Getting Started Guide](https://github.com/mlabs-haskell/cem-script/blob/master/docs/getting_started.md) |
| 17 | +* [Goals and Design](https://github.com/mlabs-haskell/cem-script/blob/master/docs/goals_and_design.md) |
| 18 | +* Article about [testing dApps on Cardano with CLB](https://www.mlabs.city/blog/testing-dapps-on-cardano-with-clb-emulator) is another introduction to testing CEM Script dApps. |
14 | 19 |
|
15 |
| -Building is performed with cabal. |
16 |
| -Building requires `libblst` and `libsodium` installed. |
| 20 | +## Building |
17 | 21 |
|
18 |
| -Arch Linux has `libblst` in AUR, nix are exemplified by IOHK, |
19 |
| -and manual installation is described here: |
20 |
| -https://github.com/input-output-hk/cardano-node-wiki/blob/main/docs/getting-started/install.md#installing-blst |
| 22 | +Building is performed with `cabal`inside IOG's `github:input-output-hk/devx` shell. |
| 23 | +See `.envrc` for details. |
21 | 24 |
|
22 | 25 | Make sure to `cabal update` before building.
|
23 | 26 |
|
24 |
| -The project uses `github:input-output-hk/devx` to make the development shell. See `.envrc` for details. |
25 |
| - |
26 | 27 | ## Running tests
|
27 | 28 |
|
28 |
| -Tests are runned in emulated environment by default. |
29 |
| - |
30 |
| -Just run: `cabal test`. |
31 |
| - |
32 |
| -For development and fast response once could consider `ghcid`. |
33 |
| - |
34 |
| -## Starting local devnet |
35 |
| - |
36 |
| -Tests depend on localdevnet, which is runned in Docker. |
37 |
| -To start it do: |
38 |
| - |
39 |
| -```bash |
40 |
| -./prepare-devnet.sh |
41 |
| -docker-compose -f docker-compose.devnet.yaml up |
42 |
| -sudo chown -R $USER:$USER ./devnet/ |
43 |
| -``` |
44 |
| - |
45 |
| -## Devnet stalling bug |
46 |
| - |
47 |
| -Sometimes devnet stalls, due to some bug, in that case one should restart it, |
48 |
| -and wipe directory `./devnet/db`. To look for stalling one could check: |
49 |
| -`CARDANO_NODE_SOCKET_PATH=./devnet/node.socket cardano-cli query tip --testnet-magic 42`. For properly working devnet slots should change |
50 |
| -and sync be marked as 100%. |
51 |
| - |
52 |
| -On this bug: |
53 |
| -https://forum.cardano.org/t/restarting-custom-private-networks-cardano-node-forge35/116921 |
54 |
| - |
55 |
| -## Project status |
| 29 | +Tests are runned in emulated environment using |
| 30 | +[CLB](https://github.com/mlabs-haskell/clb). |
56 | 31 |
|
57 |
| -Project is in early development stage and is funded by |
58 |
| -[Catalyst proposal](https://projectcatalyst.io/funds/10/f10-development-and-infrastructure/mlabs-cemscript-sdk-get-your-dapp-implementation-from-annotated-on-chain-logic-state-machine). |
59 |
| -Detailed milestones of proposal and their status [are available](https://milestones.projectcatalyst.io/projects/1000118) as well. |
| 32 | +Just run: `cabal run cem-script-test`. |
0 commit comments