@taqueria/plugin-ligo 0.21.13 → 0.21.23
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +22 -22
- package/_readme.eta +22 -22
- package/package.json +2 -2
package/README.md
CHANGED
|
@@ -4,9 +4,9 @@ The LIGO plugin provides a task to compile LIGO smart contracts to Michelson `.t
|
|
|
4
4
|
|
|
5
5
|
## Requirements
|
|
6
6
|
|
|
7
|
-
- Taqueria v0.
|
|
8
|
-
- Node.js v16.
|
|
9
|
-
- Docker
|
|
7
|
+
- Taqueria v0.20.2 or later
|
|
8
|
+
- Node.js v16.17.1 or later
|
|
9
|
+
- Docker v20.10.12 or later
|
|
10
10
|
|
|
11
11
|
## Installation
|
|
12
12
|
|
|
@@ -20,50 +20,50 @@ taq install @taqueria/plugin-ligo
|
|
|
20
20
|
Basic usage is:
|
|
21
21
|
|
|
22
22
|
```shell
|
|
23
|
-
taq compile <
|
|
23
|
+
taq compile <contractName>
|
|
24
24
|
```
|
|
25
25
|
|
|
26
26
|
> ### :warning: CAUTION
|
|
27
|
-
> The `compile` task
|
|
27
|
+
> The `compile` task is implemented by more than one compiler plugin (LIGO, Archetype, SmartPy). If more than one of these plugins are installed on a project, you need to use the `--plugin ligo` flag to specify a particular compiler
|
|
28
28
|
|
|
29
29
|
### Basic description
|
|
30
|
-
The LIGO plugin exposes a `compile` task in Taqueria which can target one LIGO contract in the `contracts` folder and compile them to a Michelson `.tz` file output to the
|
|
30
|
+
The LIGO plugin exposes a `compile` task in Taqueria which can target one LIGO contract in the `contracts` folder and compile them to a Michelson `.tz` file output to the `artifacts` folder
|
|
31
31
|
|
|
32
32
|
### A frictionless smart contract development workflow
|
|
33
|
-
Our LIGO plugin introduces a smart contract development workflow by means of two simple file naming formats
|
|
33
|
+
Our LIGO plugin introduces a smart contract development workflow by means of two simple file naming formats
|
|
34
34
|
|
|
35
|
-
Suppose you have a contract named `hello.mligo` and you create a file in the same directory as the contract with the naming format of `CONTRACT.storages.EXT`, where `CONTRACT` is the name of the contract this storages file is associated with and `EXT` must match the extension of the associated contract. In our case, the former is `hello` and the latter is `mligo`, so it'd be named `hello.storages.mligo
|
|
35
|
+
Suppose you have a contract named `hello.mligo` and you create a file in the same directory as the contract with the naming format of `CONTRACT.storages.EXT`, where `CONTRACT` is the name of the contract this storages file is associated with and `EXT` must match the extension of the associated contract. In our case, the former is `hello` and the latter is `mligo`, so it'd be named `hello.storages.mligo`
|
|
36
36
|
|
|
37
|
-
You can define a list of LIGO variables in `hello.storages.mligo` in the form of `let VARIABLE_NAME: STORAGE_TYPE = EXPRESSION` (explicit typing is optional but recommended) and the expressions will be treated as initial storage values for `hello.mligo
|
|
37
|
+
You can define a list of LIGO variables in `hello.storages.mligo` in the form of `let VARIABLE_NAME: STORAGE_TYPE = EXPRESSION` (explicit typing is optional but recommended) and the expressions will be treated as initial storage values for `hello.mligo`
|
|
38
38
|
|
|
39
39
|
> ### :page_with_curl: Note
|
|
40
40
|
> Note that the form is actually mligo code. Variable definitions in other syntax variants will differ.
|
|
41
41
|
|
|
42
|
-
Similarly with `hello.parameters.mligo` but in the form of `let VARIABLE_NAME: PARAMETER_TYPE = EXPRESSION
|
|
42
|
+
Similarly with `hello.parameters.mligo` but in the form of `let VARIABLE_NAME: PARAMETER_TYPE = EXPRESSION`
|
|
43
43
|
|
|
44
|
-
`taq compile hello.storages.mligo` will compile each definition in `hello.storages.mligo` and will produce a Michelson `.tz` file that contains the storage value, as a Michelson expression, for each of them. If the name of a variable is `storage1`, then its emitted Michelson file will be named `hello.storage.storage1.tz`. For `taq compile hello.parameters.mligo`, the name will be `hello.parameter.param1.tz` if there's a variable named `param1` defined in `hello.parameters.mligo
|
|
44
|
+
`taq compile hello.storages.mligo` will compile each definition in `hello.storages.mligo` and will produce a Michelson `.tz` file that contains the storage value, as a Michelson expression, for each of them. If the name of a variable is `storage1`, then its emitted Michelson file will be named `hello.storage.storage1.tz`. For `taq compile hello.parameters.mligo`, the name will be `hello.parameter.param1.tz` if there's a variable named `param1` defined in `hello.parameters.mligo`
|
|
45
45
|
|
|
46
|
-
Furthermore, the first variable definition in `hello.storages.mligo` will be treated as the default storage and will produce a Michelson file named `hello.default_storage.tz` instead. The `deploy` task from the Taquito plugin will take advantage of this. Go to that plugin documentation to learn how
|
|
46
|
+
Furthermore, the first variable definition in `hello.storages.mligo` will be treated as the default storage and will produce a Michelson file named `hello.default_storage.tz` instead. The `deploy` task from the Taquito plugin will take advantage of this. Go to that plugin documentation to learn how
|
|
47
47
|
|
|
48
|
-
Lastly, `taq compile hello.mligo` will compile `hello.mligo` and emit `hello.tz`. Then it'll look for `hello.storages.mligo` and `hello.parameters.mligo` and compile them too if they are found
|
|
48
|
+
Lastly, `taq compile hello.mligo` will compile `hello.mligo` and emit `hello.tz`. Then it'll look for `hello.storages.mligo` and `hello.parameters.mligo` and compile them too if they are found
|
|
49
49
|
|
|
50
50
|
> ### :warning: CAUTION
|
|
51
|
-
> Make sure you name it `hello.storages.mligo` and not `hello.storage.mligo` (note the extra `s`)
|
|
51
|
+
> Make sure you name it `hello.storages.mligo` and not `hello.storage.mligo` (note the extra `s`)
|
|
52
52
|
|
|
53
53
|
### Options
|
|
54
54
|
|
|
55
|
-
None for now
|
|
55
|
+
None for now
|
|
56
56
|
|
|
57
57
|
## The `taq test` Task
|
|
58
58
|
|
|
59
59
|
Basic usage is:
|
|
60
60
|
|
|
61
61
|
```shell
|
|
62
|
-
taq test <
|
|
62
|
+
taq test <fileName>
|
|
63
63
|
```
|
|
64
64
|
|
|
65
65
|
### Basic description
|
|
66
|
-
This task tests the LIGO source code and
|
|
66
|
+
This task tests the LIGO source code and reports either a failure or success. Normally you'd have a contract file and a separate test file that includes the contract's code, both within the `contracts` directory
|
|
67
67
|
|
|
68
68
|
For example, refer to the following 2 code snippets:
|
|
69
69
|
```ligo title="counter.mligo"
|
|
@@ -117,16 +117,16 @@ By running `taq test testCounter.mligo`, you should get the following:
|
|
|
117
117
|
│ │ - test_initial_storage exited with value (). │
|
|
118
118
|
│ │ - test_increment exited with value (). │
|
|
119
119
|
│ │ │
|
|
120
|
-
│ │ 🎉 All tests passed 🎉
|
|
120
|
+
│ │ 🎉 All tests passed 🎉 │
|
|
121
121
|
└───────────────────┴──────────────────────────────────────────────┘
|
|
122
122
|
```
|
|
123
123
|
|
|
124
124
|
## Template creation
|
|
125
|
-
The LIGO plugin also exposes a contract template via the `taq create contract <contractName>` task. This task will create a new LIGO contract in the `contracts` directory
|
|
125
|
+
The LIGO plugin also exposes a contract template via the `taq create contract <contractName>` task. This task will create a new LIGO contract in the `contracts` directory and insert some boilerplate LIGO contract code
|
|
126
126
|
|
|
127
127
|
### The `create contract` Template
|
|
128
128
|
|
|
129
|
-
The `create contract` task is used to create a new LIGO contract from a template. Running this task will create a new LIGO smart contract in the `contracts` directory
|
|
129
|
+
The `create contract` task is used to create a new LIGO contract from a template. Running this task will create a new LIGO smart contract in the `contracts` directory and insert boilerplate contract code
|
|
130
130
|
|
|
131
131
|
```shell
|
|
132
132
|
taq create contract <contractName>
|
|
@@ -136,6 +136,6 @@ The `create contract` task takes a filename a required positional argument. The
|
|
|
136
136
|
|
|
137
137
|
## Plugin Architecture
|
|
138
138
|
|
|
139
|
-
This is a plugin developed for Taqueria built on NodeJS using the Taqueria Node SDK
|
|
139
|
+
This is a plugin developed for Taqueria built on NodeJS using the Taqueria Node SDK and distributed via NPM
|
|
140
140
|
|
|
141
|
-
Docker is used under the hood to provide a self contained environment for
|
|
141
|
+
Docker is used under the hood to provide a self contained environment for LIGO to prevent the need for it to be installed on the user's local machine
|
package/_readme.eta
CHANGED
|
@@ -6,9 +6,9 @@ The LIGO plugin provides a task to compile LIGO smart contracts to Michelson `.t
|
|
|
6
6
|
|
|
7
7
|
## Requirements
|
|
8
8
|
|
|
9
|
-
- Taqueria v0.
|
|
10
|
-
- Node.js v16.
|
|
11
|
-
- Docker
|
|
9
|
+
- Taqueria v0.20.2 or later
|
|
10
|
+
- Node.js v16.17.1 or later
|
|
11
|
+
- Docker v20.10.12 or later
|
|
12
12
|
|
|
13
13
|
## Installation
|
|
14
14
|
|
|
@@ -22,53 +22,53 @@ taq install @taqueria/plugin-ligo
|
|
|
22
22
|
Basic usage is:
|
|
23
23
|
|
|
24
24
|
```shell
|
|
25
|
-
taq compile <
|
|
25
|
+
taq compile <contractName>
|
|
26
26
|
```
|
|
27
27
|
|
|
28
28
|
<%~ it.cautionOpenAdmonition %>
|
|
29
|
-
The `compile` task
|
|
29
|
+
The `compile` task is implemented by more than one compiler plugin (LIGO, Archetype, SmartPy). If more than one of these plugins are installed on a project, you need to use the `--plugin ligo` flag to specify a particular compiler
|
|
30
30
|
<%= it.closeAdmonition %>
|
|
31
31
|
|
|
32
32
|
### Basic description
|
|
33
|
-
The LIGO plugin exposes a `compile` task in Taqueria which can target one LIGO contract in the `contracts` folder and compile them to a Michelson `.tz` file output to the
|
|
33
|
+
The LIGO plugin exposes a `compile` task in Taqueria which can target one LIGO contract in the `contracts` folder and compile them to a Michelson `.tz` file output to the `artifacts` folder
|
|
34
34
|
|
|
35
35
|
### A frictionless smart contract development workflow
|
|
36
|
-
Our LIGO plugin introduces a smart contract development workflow by means of two simple file naming formats
|
|
36
|
+
Our LIGO plugin introduces a smart contract development workflow by means of two simple file naming formats
|
|
37
37
|
|
|
38
|
-
Suppose you have a contract named `hello.mligo` and you create a file in the same directory as the contract with the naming format of `CONTRACT.storages.EXT`, where `CONTRACT` is the name of the contract this storages file is associated with and `EXT` must match the extension of the associated contract. In our case, the former is `hello` and the latter is `mligo`, so it'd be named `hello.storages.mligo
|
|
38
|
+
Suppose you have a contract named `hello.mligo` and you create a file in the same directory as the contract with the naming format of `CONTRACT.storages.EXT`, where `CONTRACT` is the name of the contract this storages file is associated with and `EXT` must match the extension of the associated contract. In our case, the former is `hello` and the latter is `mligo`, so it'd be named `hello.storages.mligo`
|
|
39
39
|
|
|
40
|
-
You can define a list of LIGO variables in `hello.storages.mligo` in the form of `let VARIABLE_NAME: STORAGE_TYPE = EXPRESSION` (explicit typing is optional but recommended) and the expressions will be treated as initial storage values for `hello.mligo
|
|
40
|
+
You can define a list of LIGO variables in `hello.storages.mligo` in the form of `let VARIABLE_NAME: STORAGE_TYPE = EXPRESSION` (explicit typing is optional but recommended) and the expressions will be treated as initial storage values for `hello.mligo`
|
|
41
41
|
|
|
42
42
|
<%~ it.noteOpenAdmonition %>
|
|
43
43
|
Note that the form is actually mligo code. Variable definitions in other syntax variants will differ.
|
|
44
44
|
<%= it.closeAdmonition %>
|
|
45
45
|
|
|
46
|
-
Similarly with `hello.parameters.mligo` but in the form of `let VARIABLE_NAME: PARAMETER_TYPE = EXPRESSION
|
|
46
|
+
Similarly with `hello.parameters.mligo` but in the form of `let VARIABLE_NAME: PARAMETER_TYPE = EXPRESSION`
|
|
47
47
|
|
|
48
|
-
`taq compile hello.storages.mligo` will compile each definition in `hello.storages.mligo` and will produce a Michelson `.tz` file that contains the storage value, as a Michelson expression, for each of them. If the name of a variable is `storage1`, then its emitted Michelson file will be named `hello.storage.storage1.tz`. For `taq compile hello.parameters.mligo`, the name will be `hello.parameter.param1.tz` if there's a variable named `param1` defined in `hello.parameters.mligo
|
|
48
|
+
`taq compile hello.storages.mligo` will compile each definition in `hello.storages.mligo` and will produce a Michelson `.tz` file that contains the storage value, as a Michelson expression, for each of them. If the name of a variable is `storage1`, then its emitted Michelson file will be named `hello.storage.storage1.tz`. For `taq compile hello.parameters.mligo`, the name will be `hello.parameter.param1.tz` if there's a variable named `param1` defined in `hello.parameters.mligo`
|
|
49
49
|
|
|
50
|
-
Furthermore, the first variable definition in `hello.storages.mligo` will be treated as the default storage and will produce a Michelson file named `hello.default_storage.tz` instead. The `deploy` task from the Taquito plugin will take advantage of this. Go to that plugin documentation to learn how
|
|
50
|
+
Furthermore, the first variable definition in `hello.storages.mligo` will be treated as the default storage and will produce a Michelson file named `hello.default_storage.tz` instead. The `deploy` task from the Taquito plugin will take advantage of this. Go to that plugin documentation to learn how
|
|
51
51
|
|
|
52
|
-
Lastly, `taq compile hello.mligo` will compile `hello.mligo` and emit `hello.tz`. Then it'll look for `hello.storages.mligo` and `hello.parameters.mligo` and compile them too if they are found
|
|
52
|
+
Lastly, `taq compile hello.mligo` will compile `hello.mligo` and emit `hello.tz`. Then it'll look for `hello.storages.mligo` and `hello.parameters.mligo` and compile them too if they are found
|
|
53
53
|
|
|
54
54
|
<%~ it.cautionOpenAdmonition %>
|
|
55
|
-
Make sure you name it `hello.storages.mligo` and not `hello.storage.mligo` (note the extra `s`)
|
|
55
|
+
Make sure you name it `hello.storages.mligo` and not `hello.storage.mligo` (note the extra `s`)
|
|
56
56
|
<%= it.closeAdmonition %>
|
|
57
57
|
|
|
58
58
|
### Options
|
|
59
59
|
|
|
60
|
-
None for now
|
|
60
|
+
None for now
|
|
61
61
|
|
|
62
62
|
## The `taq test` Task
|
|
63
63
|
|
|
64
64
|
Basic usage is:
|
|
65
65
|
|
|
66
66
|
```shell
|
|
67
|
-
taq test <
|
|
67
|
+
taq test <fileName>
|
|
68
68
|
```
|
|
69
69
|
|
|
70
70
|
### Basic description
|
|
71
|
-
This task tests the LIGO source code and
|
|
71
|
+
This task tests the LIGO source code and reports either a failure or success. Normally you'd have a contract file and a separate test file that includes the contract's code, both within the `contracts` directory
|
|
72
72
|
|
|
73
73
|
For example, refer to the following 2 code snippets:
|
|
74
74
|
```ligo title="counter.mligo"
|
|
@@ -122,16 +122,16 @@ By running `taq test testCounter.mligo`, you should get the following:
|
|
|
122
122
|
│ │ - test_initial_storage exited with value (). │
|
|
123
123
|
│ │ - test_increment exited with value (). │
|
|
124
124
|
│ │ │
|
|
125
|
-
│ │ 🎉 All tests passed 🎉
|
|
125
|
+
│ │ 🎉 All tests passed 🎉 │
|
|
126
126
|
└───────────────────┴──────────────────────────────────────────────┘
|
|
127
127
|
```
|
|
128
128
|
|
|
129
129
|
## Template creation
|
|
130
|
-
The LIGO plugin also exposes a contract template via the `taq create contract <contractName>` task. This task will create a new LIGO contract in the `contracts` directory
|
|
130
|
+
The LIGO plugin also exposes a contract template via the `taq create contract <contractName>` task. This task will create a new LIGO contract in the `contracts` directory and insert some boilerplate LIGO contract code
|
|
131
131
|
|
|
132
132
|
### The `create contract` Template
|
|
133
133
|
|
|
134
|
-
The `create contract` task is used to create a new LIGO contract from a template. Running this task will create a new LIGO smart contract in the `contracts` directory
|
|
134
|
+
The `create contract` task is used to create a new LIGO contract from a template. Running this task will create a new LIGO smart contract in the `contracts` directory and insert boilerplate contract code
|
|
135
135
|
|
|
136
136
|
```shell
|
|
137
137
|
taq create contract <contractName>
|
|
@@ -141,6 +141,6 @@ The `create contract` task takes a filename a required positional argument. The
|
|
|
141
141
|
|
|
142
142
|
## Plugin Architecture
|
|
143
143
|
|
|
144
|
-
This is a plugin developed for Taqueria built on NodeJS using the Taqueria Node SDK
|
|
144
|
+
This is a plugin developed for Taqueria built on NodeJS using the Taqueria Node SDK and distributed via NPM
|
|
145
145
|
|
|
146
|
-
Docker is used under the hood to provide a self contained environment for
|
|
146
|
+
Docker is used under the hood to provide a self contained environment for LIGO to prevent the need for it to be installed on the user's local machine
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@taqueria/plugin-ligo",
|
|
3
|
-
"version": "0.21.
|
|
3
|
+
"version": "0.21.23",
|
|
4
4
|
"description": "A taqueria plugin for compiling LIGO smart contracts",
|
|
5
5
|
"targets": {
|
|
6
6
|
"default": {
|
|
@@ -41,7 +41,7 @@
|
|
|
41
41
|
},
|
|
42
42
|
"homepage": "https://github.com/ecadlabs/taqueria#readme",
|
|
43
43
|
"dependencies": {
|
|
44
|
-
"@taqueria/node-sdk": "^0.21.
|
|
44
|
+
"@taqueria/node-sdk": "^0.21.23",
|
|
45
45
|
"fast-glob": "^3.2.11"
|
|
46
46
|
},
|
|
47
47
|
"devDependencies": {
|