Skip to content

Commit 2536aeb

Browse files
authored
CIP-0057 | Add 'compiler' field (#859)
* Add 'compiler' field to the blueprint. This is a purely additive, and optional, change. So it shouldn't pose much problem to add (existing implementation that supports blueprints would keep working). Yet it documents a field that we've started using in Aiken and that has turned to be incredibly useful. * Document few more projects in connection with blueprints.
1 parent 49c64d4 commit 2536aeb

File tree

2 files changed

+34
-8
lines changed

2 files changed

+34
-8
lines changed

CIP-0057/README.md

Lines changed: 21 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -15,6 +15,7 @@ Implementors:
1515
Discussions:
1616
- https://github.com/cardano-foundation/CIPs/pull/258
1717
- https://discord.gg/yUkkhqBnyV
18+
- https://github.com/aiken-lang/aiken/issues/972
1819
Created: 2022-05-15
1920
License: CC-BY-4.0
2021
---
@@ -65,13 +66,23 @@ Note that examples of specifications are given later in the document to keep the
6566

6667
The `preamble` fields stores meta-information about the contract such as version numbers or a short description. This field is mainly meant for humans as a mean to contextualize a specification.
6768

68-
| Fields | Description |
69-
| --- | --- |
70-
| title | A short and descriptive title of the application |
71-
| ?description | A more elaborate description |
72-
| ?version | A version number for the project. |
73-
| ?plutusVersion | The Plutus version assumed for all validators |
74-
| ?license | A license under which the specification and contract code is distributed |
69+
| Fields | Description |
70+
| --- | --- |
71+
| title | A short and descriptive title of the application |
72+
| ?description | A more elaborate description |
73+
| ?version | A version number for the project. |
74+
| ?compiler | Information about the compiler or framework used to produce the validator(s) |
75+
| ?plutusVersion | The Plutus version assumed for all validators |
76+
| ?license | A license under which the specification and contract code is distributed |
77+
78+
#### compiler
79+
80+
The `compiler` field is optional, but allows specifying metadata about the toolkit that produced the validator and blueprint.
81+
82+
| Fields | Description |
83+
| --- | --- |
84+
| name | The name of the compiler/framework/tool that generated the file. |
85+
| ?version | An optional version number in any format. |
7586

7687
#### validators
7788

@@ -405,6 +416,7 @@ Yet, whereas there's a notion of purpose on-chain that is tightly coupled to the
405416
- [x] [Aiken](https://aiken-lang.org/)
406417
- [x] [Mesh.js](https://meshjs.dev/)
407418
- [x] [Lucid](https://lucid.spacebudz.io/)
419+
- [x] [Bloxbean/cardano-client-lib](https://github.com/bloxbean/cardano-client-lib)
408420
- [ ] [PyCardano](https://pycardano.readthedocs.io)
409421
- [ ] [Demeter](https://demeter.run/)
410422

@@ -416,7 +428,8 @@ Yet, whereas there's a notion of purpose on-chain that is tightly coupled to the
416428
- [x] JavaScript
417429
- [x] TypeScript
418430
- [ ] Python
419-
- [ ] (optional) develop a tool for rendering Plutus blueprint specifications as documentation
431+
- [x] (optional) develop a tool for rendering Plutus blueprint specifications as documentation
432+
- [paima/aiken-mdx](https://www.npmjs.com/package/@paima/aiken-mdx)
420433

421434
## Copyright
422435

CIP-0057/schemas/plutus-blueprint.json

Lines changed: 13 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -50,6 +50,19 @@
5050
"type": "string",
5151
"enum": [ "v1", "v2", "v3" ]
5252
},
53+
"compiler": {
54+
"type": "object",
55+
"required": [ "name" ],
56+
"additionalProperties": false,
57+
"properties": {
58+
"name": {
59+
"type": "string"
60+
},
61+
"version": {
62+
"type": "string"
63+
}
64+
}
65+
},
5366
"license": {
5467
"type": "string"
5568
}

0 commit comments

Comments
 (0)