pontus-x_cli 0.0.1
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 +136 -0
- package/dist/aquarius-query/index.js +30 -0
- package/dist/aquarius-query/index.js.map +1 -0
- package/dist/config.js +179 -0
- package/dist/config.js.map +1 -0
- package/dist/export-key-as-json/index.js +27 -0
- package/dist/export-key-as-json/index.js.map +1 -0
- package/dist/gaia-x_compliance/generate-did-web/index.js +22 -0
- package/dist/gaia-x_compliance/generate-did-web/index.js.map +1 -0
- package/dist/gaia-x_compliance/generate-participant-vcs/index.js +137 -0
- package/dist/gaia-x_compliance/generate-participant-vcs/index.js.map +1 -0
- package/dist/index.js +241 -0
- package/dist/index.js.map +1 -0
- package/dist/publish/samples/algo/index.js +59 -0
- package/dist/publish/samples/algo/index.js.map +1 -0
- package/dist/publish/samples/data/index.js +52 -0
- package/dist/publish/samples/data/index.js.map +1 -0
- package/dist/utils/connection.js +46 -0
- package/dist/utils/connection.js.map +1 -0
- package/dist/utils/index.js +19 -0
- package/dist/utils/index.js.map +1 -0
- package/dist/utils/publish-script-runner.js +50 -0
- package/dist/utils/publish-script-runner.js.map +1 -0
- package/package.json +52 -0
package/README.md
ADDED
|
@@ -0,0 +1,136 @@
|
|
|
1
|
+
# Pontus-X CLI
|
|
2
|
+
|
|
3
|
+
Command Line Interface for the Pontus-X Data Space Ecosystem.
|
|
4
|
+
|
|
5
|
+
## Installation
|
|
6
|
+
|
|
7
|
+
```shell
|
|
8
|
+
npm install -g @rogargon/pontus-x_cli
|
|
9
|
+
```
|
|
10
|
+
|
|
11
|
+
Then, create a `.env` file in your home directory with the network to be used, for instance, PONTUSXDEV or PONTUSXTEST:
|
|
12
|
+
|
|
13
|
+
```
|
|
14
|
+
NETWORK=PONTUSXDEV
|
|
15
|
+
```
|
|
16
|
+
|
|
17
|
+
## Currently available commands
|
|
18
|
+
|
|
19
|
+
### export-private-key
|
|
20
|
+
|
|
21
|
+
Export your private key as a JSON file, to use later with the login command or for Pontus-X portals automation. More details at [export-key-as-json](./src/export-key-as-json/README.md)
|
|
22
|
+
|
|
23
|
+
### login \<keyFile.json>
|
|
24
|
+
|
|
25
|
+
Login to retrieve your private key from a JSON key store and store it in .env:
|
|
26
|
+
|
|
27
|
+
```shell
|
|
28
|
+
pontus-x_cli login 62078f05eb4450272d7e492f3660835826906822.json
|
|
29
|
+
```
|
|
30
|
+
|
|
31
|
+
### logout
|
|
32
|
+
|
|
33
|
+
Logout to remove your private key from .env file:
|
|
34
|
+
|
|
35
|
+
```shell
|
|
36
|
+
pontus-x_cli logout
|
|
37
|
+
```
|
|
38
|
+
|
|
39
|
+
### get \<did>
|
|
40
|
+
|
|
41
|
+
Get the available metadata to the asset with the given DID:
|
|
42
|
+
|
|
43
|
+
```shell
|
|
44
|
+
pontus-x_cli get did:op:34d5f73d77550843201ee1a43ad9d404d3e557ed6a70772e9afde7a27d863b8f
|
|
45
|
+
```
|
|
46
|
+
|
|
47
|
+
### access \<did>
|
|
48
|
+
|
|
49
|
+
Access a downloadable asset (either a dataset or algorithm) given its DID:
|
|
50
|
+
|
|
51
|
+
```shell
|
|
52
|
+
pontus-x_cli access did:op:34d5f73d77550843201ee1a43ad9d404d3e557ed6a70772e9afde7a27d863b8f
|
|
53
|
+
```
|
|
54
|
+
|
|
55
|
+
### revoke \<did>
|
|
56
|
+
|
|
57
|
+
Publisher revocation of an owned DID
|
|
58
|
+
|
|
59
|
+
```shell
|
|
60
|
+
pontus-x_cli revoke did:op:052eb04066d696a27430116676c859c6303d82257c7a0ebda51f4e80363f6bca
|
|
61
|
+
```
|
|
62
|
+
|
|
63
|
+
### self-description \<did> \<sdurl>
|
|
64
|
+
|
|
65
|
+
Associate Gaia-X Self-Description to the asset with the given DID
|
|
66
|
+
|
|
67
|
+
Edit a DID metadata to link it to a Gaia-X Self Description available from the provided URL (it should be compliant with the configured Gaia-X Digital Clearing House, for instance https://compliance.lab.gaia-x.eu/v1-staging/docs):
|
|
68
|
+
|
|
69
|
+
```shell
|
|
70
|
+
pontus-x_cli self-description did:op:34d5f73d77550843201ee1a43ad9d404d3e557ed6a70772e9afde7a27d863b8f https://angliru.udl.cat/.well-known/2210_serviceOffering-eda.json
|
|
71
|
+
```
|
|
72
|
+
|
|
73
|
+
### change-price \<did> \<newPrice>
|
|
74
|
+
|
|
75
|
+
Change the price keeping the existing currency for an asset with the given DID
|
|
76
|
+
|
|
77
|
+
Edit the price of an existing DID, keeping the current currency:
|
|
78
|
+
|
|
79
|
+
```shell
|
|
80
|
+
pontus-x_cli change-price did:op:34d5f73d77550843201ee1a43ad9d404d3e557ed6a70772e9afde7a27d863b8f 0.1
|
|
81
|
+
```
|
|
82
|
+
|
|
83
|
+
### edit-algo \<did> \<image> \<tag> \<checksum>
|
|
84
|
+
|
|
85
|
+
Change the container metadata for a given algorithm DID:
|
|
86
|
+
|
|
87
|
+
```shell
|
|
88
|
+
pontus-x_cli edit-algo did:op:34d5f73d77550843201ee1a43ad9d404d3e557ed6a70772e9afde7a27d863b8f rogargon/pandas-profiling 4.9.0 sha256:105d404c9b00438c08c2199d5356fcd17d7349cff514c923d066ced56d9baa93
|
|
89
|
+
```
|
|
90
|
+
|
|
91
|
+
### edit-trusted-algos \<did> \<algos...>
|
|
92
|
+
|
|
93
|
+
Overwrite the trusted algorithms for a data asset to the provided algorithm DIDs:
|
|
94
|
+
|
|
95
|
+
```shell
|
|
96
|
+
pontus-x_cli edit-trusted-algos did:op:f7946c46eb87318b2cd34efdd5f33b19ea9223a90b67f447da6a92aa68ca007c did:op:34d5f73d77550843201ee1a43ad9d404d3e557ed6a70772e9afde7a27d863b8f did:op:d20f956e79709fb2469fffe2bd85cf2fec95a21d2497998bb530043c6bbec901
|
|
97
|
+
```
|
|
98
|
+
|
|
99
|
+
### edit-dataset-url \<did> \<url>
|
|
100
|
+
|
|
101
|
+
Change the URL of a dataset DID:
|
|
102
|
+
|
|
103
|
+
```shell
|
|
104
|
+
pontus-x_cli edit-dataset-url did:op:f7946c46eb87318b2cd34efdd5f33b19ea9223a90b67f447da6a92aa68ca007c https://new.url/dataset.csv
|
|
105
|
+
```
|
|
106
|
+
|
|
107
|
+
### publish \[options] \<script-folder>
|
|
108
|
+
|
|
109
|
+
Publish the asset as instructed in the provided script:
|
|
110
|
+
|
|
111
|
+
```shell
|
|
112
|
+
pontus-x_cli publish --provider https://provider.angliru.udl.cat src/publish/samples/data --dry-run
|
|
113
|
+
```
|
|
114
|
+
|
|
115
|
+
Remove the flag `--dry-run` to actually publish the asset.
|
|
116
|
+
|
|
117
|
+
The script should be a TypeScript file `index.ts` in the input script-folder, which should have a function `publish` with the following signature:
|
|
118
|
+
|
|
119
|
+
```typescript
|
|
120
|
+
const publish = async (folder: string, connection: any, provider: string, dryRun: boolean) => {
|
|
121
|
+
// Your publishing logic here
|
|
122
|
+
}
|
|
123
|
+
```
|
|
124
|
+
|
|
125
|
+
In the same folder, you should have a `description.md` file with the description of the asset to be published using Markdown syntax.
|
|
126
|
+
|
|
127
|
+
There are samples of publish scripts and description Markdown files for algorithms and datasets in the [src/publish/samples](src/publish/samples) folder.
|
|
128
|
+
|
|
129
|
+
|
|
130
|
+
## Additional commands
|
|
131
|
+
|
|
132
|
+
There is a separate set of scripts and configuration files, not integrated into the Pontus-X CLI because they are based on other external commands and resources, like Kubernetes CLI and YAML configuration files.
|
|
133
|
+
|
|
134
|
+
These scripts and files are intended to help bootstrap Gaia-X Compliance through the Gaia-X Trust Framework. Starting with deploying a DID Web server and then Verifiable Credentials for participants.
|
|
135
|
+
|
|
136
|
+
More details: [gaia-x_compliance](./src/gaia-x_compliance/README.md)
|
|
@@ -0,0 +1,30 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
3
|
+
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
4
|
+
};
|
|
5
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
|
+
const fs_1 = require("fs");
|
|
7
|
+
const path_1 = require("path");
|
|
8
|
+
const handlebars_1 = __importDefault(require("handlebars"));
|
|
9
|
+
const axios_1 = __importDefault(require("axios"));
|
|
10
|
+
async function query() {
|
|
11
|
+
var _a;
|
|
12
|
+
const aquarius = 'https://aquarius.pontus-x.eu/api/aquarius/assets/query';
|
|
13
|
+
const fileContent = (0, fs_1.readFileSync)((0, path_1.resolve)('src/aquarius-query/', 'query-template.hbs'), 'utf-8');
|
|
14
|
+
const queryTemplate = handlebars_1.default.compile(fileContent);
|
|
15
|
+
const query = queryTemplate({ chainId: 100, name: 'CEP', tag: 'udl', created: '2023-09-01' });
|
|
16
|
+
try {
|
|
17
|
+
const response = await axios_1.default.post(`${aquarius}`, JSON.parse(query));
|
|
18
|
+
if (response.status === 200) {
|
|
19
|
+
console.log(response.data.hits.hits.map((hit) => ({ did: hit._source.id, name: hit._source.metadata.name })));
|
|
20
|
+
}
|
|
21
|
+
else {
|
|
22
|
+
console.error(response === null || response === void 0 ? void 0 : response.data);
|
|
23
|
+
}
|
|
24
|
+
}
|
|
25
|
+
catch (e) {
|
|
26
|
+
console.error((_a = e.response) === null || _a === void 0 ? void 0 : _a.data);
|
|
27
|
+
}
|
|
28
|
+
}
|
|
29
|
+
query();
|
|
30
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/aquarius-query/index.ts"],"names":[],"mappings":";;;;;AAAA,2BAAkC;AAClC,+BAA+B;AAC/B,4DAAoC;AACpC,kDAA0C;AAE1C,KAAK,UAAU,KAAK;;IAChB,MAAM,QAAQ,GAAG,wDAAwD,CAAC;IAC1E,MAAM,WAAW,GAAG,IAAA,iBAAY,EAAC,IAAA,cAAO,EAAC,qBAAqB,EAAE,oBAAoB,CAAC,EAAE,OAAO,CAAC,CAAC;IAChG,MAAM,aAAa,GAAG,oBAAU,CAAC,OAAO,CAAC,WAAW,CAAC,CAAC;IACtD,MAAM,KAAK,GAAG,aAAa,CAAC,EAAC,OAAO,EAAE,GAAG,EAAE,IAAI,EAAE,KAAK,EAAE,GAAG,EAAE,KAAK,EAAE,OAAO,EAAE,YAAY,EAAC,CAAC,CAAC;IAC5F,IAAI,CAAC;QACD,MAAM,QAAQ,GAAG,MAAM,eAAK,CAAC,IAAI,CAAC,GAAG,QAAQ,EAAE,EAAE,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC;QACpE,IAAI,QAAQ,CAAC,MAAM,KAAK,GAAG,EAAE,CAAC;YAC1B,OAAO,CAAC,GAAG,CAAC,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,GAAQ,EAAE,EAAE,CACjD,CAAC,EAAE,GAAG,EAAE,GAAG,CAAC,OAAO,CAAC,EAAE,EAAE,IAAI,EAAE,GAAG,CAAC,OAAO,CAAC,QAAQ,CAAC,IAAI,EAAE,CAAC,CAAE,CAAC,CAAC;QACtE,CAAC;aAAM,CAAC;YACJ,OAAO,CAAC,KAAK,CAAC,QAAQ,aAAR,QAAQ,uBAAR,QAAQ,CAAE,IAAI,CAAC,CAAC;QAClC,CAAC;IACL,CAAC;IAAC,OAAO,CAAC,EAAE,CAAC;QACT,OAAO,CAAC,KAAK,CAAC,MAAC,CAAgB,CAAC,QAAQ,0CAAE,IAAI,CAAC,CAAC;IACpD,CAAC;AACL,CAAC;AACD,KAAK,EAAE,CAAC"}
|
package/dist/config.js
ADDED
|
@@ -0,0 +1,179 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.PRICING_CONFIGS = exports.NETWORK_CONFIGS = exports.Network = void 0;
|
|
4
|
+
var Network;
|
|
5
|
+
(function (Network) {
|
|
6
|
+
Network["GENX"] = "GENX";
|
|
7
|
+
Network["PONTUSXDEV"] = "PONTUSXDEV";
|
|
8
|
+
Network["PONTUSXTEST"] = "PONTUSXTEST";
|
|
9
|
+
})(Network || (exports.Network = Network = {}));
|
|
10
|
+
exports.NETWORK_CONFIGS = {
|
|
11
|
+
[Network.GENX]: {
|
|
12
|
+
chainId: 100,
|
|
13
|
+
network: 'genx',
|
|
14
|
+
metadataCacheUri: 'https://aquarius510.v4.delta-dao.com',
|
|
15
|
+
nodeUri: 'https://rpc.genx.minimal-gaia-x.eu',
|
|
16
|
+
providerUri: 'https://provider.v4.genx.delta-dao.com',
|
|
17
|
+
subgraphUri: 'https://subgraph.v4.genx.minimal-gaia-x.eu',
|
|
18
|
+
oceanTokenAddress: '0x0995527d3473b3a98c471f1ed8787acd77fbf009',
|
|
19
|
+
oceanTokenSymbol: 'OCEAN',
|
|
20
|
+
fixedRateExchangeAddress: '0xAD8E7d2aFf5F5ae7c2645a52110851914eE6664b',
|
|
21
|
+
dispenserAddress: '0x94cb8FC8719Ed09bE3D9c696d2037EA95ef68d3e',
|
|
22
|
+
nftFactoryAddress: '0x6cb85858183B82154921f68b434299EC4281da53',
|
|
23
|
+
providerAddress: '0x68C24FA5b2319C81b34f248d1f928601D2E5246B',
|
|
24
|
+
explorerUri: 'https://logging.genx.minimal-gaia-x.eu',
|
|
25
|
+
},
|
|
26
|
+
[Network.PONTUSXDEV]: {
|
|
27
|
+
chainId: 32456,
|
|
28
|
+
network: 'pontusxdev',
|
|
29
|
+
metadataCacheUri: 'https://aquarius.pontus-x.eu',
|
|
30
|
+
nodeUri: 'https://rpc.dev.pontus-x.eu',
|
|
31
|
+
providerUri: 'https://provider.dev.pontus-x.eu',
|
|
32
|
+
subgraphUri: 'https://subgraph.dev.pontus-x.eu',
|
|
33
|
+
oceanTokenAddress: '0xdF171F74a8d3f4e2A789A566Dce9Fa4945196112',
|
|
34
|
+
oceanTokenSymbol: 'OCEAN',
|
|
35
|
+
fixedRateExchangeAddress: '0x8372715D834d286c9aECE1AcD51Da5755B32D505',
|
|
36
|
+
dispenserAddress: '0x5461b629E01f72E0A468931A36e039Eea394f9eA',
|
|
37
|
+
nftFactoryAddress: '0xFdC4a5DEaCDfc6D82F66e894539461a269900E13',
|
|
38
|
+
providerAddress: '0x68C24FA5b2319C81b34f248d1f928601D2E5246B',
|
|
39
|
+
explorerUri: 'https://explorer.pontus-x.eu/pontusx/dev'
|
|
40
|
+
}, [Network.PONTUSXTEST]: {
|
|
41
|
+
chainId: 32457,
|
|
42
|
+
network: 'pontusxtest',
|
|
43
|
+
metadataCacheUri: 'https://aquarius.pontus-x.eu',
|
|
44
|
+
nodeUri: 'https://rpc.test.pontus-x.eu',
|
|
45
|
+
providerUri: 'https://provider.test.pontus-x.eu',
|
|
46
|
+
subgraphUri: 'https://subgraph.test.pontus-x.eu',
|
|
47
|
+
oceanTokenAddress: '0x5B190F9E2E721f8c811E4d584383E3d57b865C69',
|
|
48
|
+
oceanTokenSymbol: 'OCEAN',
|
|
49
|
+
fixedRateExchangeAddress: '0xcE0F39abB6DA2aE4d072DA78FA0A711cBB62764E',
|
|
50
|
+
dispenserAddress: '0xaB5B68F88Bc881CAA427007559E9bbF8818026dE',
|
|
51
|
+
nftFactoryAddress: '0x2C4d542ff791890D9290Eec89C9348A4891A6Fd2',
|
|
52
|
+
providerAddress: '0x9546d39CE3E48BC942f0be4AA9652cBe0Aff3592',
|
|
53
|
+
explorerUri: 'https://explorer.pontus-x.eu/pontusx/test'
|
|
54
|
+
}
|
|
55
|
+
};
|
|
56
|
+
// These are example pricing configurations with prefilled contract addresses of the payment tokens
|
|
57
|
+
exports.PRICING_CONFIGS = {
|
|
58
|
+
[Network.GENX]: {
|
|
59
|
+
fixedRateOcean: (rate) => {
|
|
60
|
+
if (rate <= 0) {
|
|
61
|
+
return { type: 'free' };
|
|
62
|
+
}
|
|
63
|
+
else {
|
|
64
|
+
return {
|
|
65
|
+
type: 'fixed',
|
|
66
|
+
freCreationParams: {
|
|
67
|
+
fixedRateAddress: '0xAD8E7d2aFf5F5ae7c2645a52110851914eE6664b',
|
|
68
|
+
baseTokenAddress: '0x0995527d3473b3a98c471f1ed8787acd77fbf009',
|
|
69
|
+
baseTokenDecimals: 18,
|
|
70
|
+
datatokenDecimals: 18,
|
|
71
|
+
fixedRate: `${rate}`,
|
|
72
|
+
marketFee: '0',
|
|
73
|
+
marketFeeCollector: '0x0000000000000000000000000000000000000000'
|
|
74
|
+
}
|
|
75
|
+
};
|
|
76
|
+
}
|
|
77
|
+
},
|
|
78
|
+
fixedRateEUROe: (rate) => {
|
|
79
|
+
if (rate <= 0) {
|
|
80
|
+
return { type: 'free' };
|
|
81
|
+
}
|
|
82
|
+
else {
|
|
83
|
+
return {
|
|
84
|
+
type: 'fixed',
|
|
85
|
+
freCreationParams: {
|
|
86
|
+
fixedRateAddress: '0xAD8E7d2aFf5F5ae7c2645a52110851914eE6664b',
|
|
87
|
+
baseTokenAddress: '0xe974c4894996E012399dEDbda0bE7314a73BBff1',
|
|
88
|
+
baseTokenDecimals: 6, // adapted for EUROe decimals
|
|
89
|
+
datatokenDecimals: 18,
|
|
90
|
+
fixedRate: `${rate}`,
|
|
91
|
+
marketFee: '0',
|
|
92
|
+
marketFeeCollector: '0x0000000000000000000000000000000000000000'
|
|
93
|
+
}
|
|
94
|
+
};
|
|
95
|
+
}
|
|
96
|
+
}
|
|
97
|
+
},
|
|
98
|
+
[Network.PONTUSXDEV]: {
|
|
99
|
+
fixedRateOcean: (rate) => {
|
|
100
|
+
if (rate <= 0) {
|
|
101
|
+
return { type: 'free' };
|
|
102
|
+
}
|
|
103
|
+
else {
|
|
104
|
+
return {
|
|
105
|
+
type: 'fixed',
|
|
106
|
+
freCreationParams: {
|
|
107
|
+
fixedRateAddress: '0x8372715D834d286c9aECE1AcD51Da5755B32D505',
|
|
108
|
+
baseTokenAddress: '0xdF171F74a8d3f4e2A789A566Dce9Fa4945196112',
|
|
109
|
+
baseTokenDecimals: 18,
|
|
110
|
+
datatokenDecimals: 18,
|
|
111
|
+
fixedRate: `${rate}`,
|
|
112
|
+
marketFee: '0',
|
|
113
|
+
marketFeeCollector: '0x0000000000000000000000000000000000000000'
|
|
114
|
+
}
|
|
115
|
+
};
|
|
116
|
+
}
|
|
117
|
+
},
|
|
118
|
+
fixedRateEUROe: (rate) => {
|
|
119
|
+
if (rate <= 0) {
|
|
120
|
+
return { type: 'free' };
|
|
121
|
+
}
|
|
122
|
+
else {
|
|
123
|
+
return {
|
|
124
|
+
type: 'fixed',
|
|
125
|
+
freCreationParams: {
|
|
126
|
+
fixedRateAddress: '0x8372715D834d286c9aECE1AcD51Da5755B32D505',
|
|
127
|
+
baseTokenAddress: '0x8A4826071983655805bF4f29828577Cd6b1aC0cB',
|
|
128
|
+
baseTokenDecimals: 18, // adapted for EUROe decimals
|
|
129
|
+
datatokenDecimals: 18,
|
|
130
|
+
fixedRate: `${rate}`,
|
|
131
|
+
marketFee: '0',
|
|
132
|
+
marketFeeCollector: '0x0000000000000000000000000000000000000000'
|
|
133
|
+
}
|
|
134
|
+
};
|
|
135
|
+
}
|
|
136
|
+
}
|
|
137
|
+
},
|
|
138
|
+
[Network.PONTUSXTEST]: {
|
|
139
|
+
fixedRateOcean: (rate) => {
|
|
140
|
+
if (rate <= 0) {
|
|
141
|
+
return { type: 'free' };
|
|
142
|
+
}
|
|
143
|
+
else {
|
|
144
|
+
return {
|
|
145
|
+
type: 'fixed',
|
|
146
|
+
freCreationParams: {
|
|
147
|
+
fixedRateAddress: '0xcE0F39abB6DA2aE4d072DA78FA0A711cBB62764E',
|
|
148
|
+
baseTokenAddress: '0x5B190F9E2E721f8c811E4d584383E3d57b865C69',
|
|
149
|
+
baseTokenDecimals: 18,
|
|
150
|
+
datatokenDecimals: 18,
|
|
151
|
+
fixedRate: `${rate}`,
|
|
152
|
+
marketFee: '0',
|
|
153
|
+
marketFeeCollector: '0x0000000000000000000000000000000000000000'
|
|
154
|
+
}
|
|
155
|
+
};
|
|
156
|
+
}
|
|
157
|
+
},
|
|
158
|
+
fixedRateEUROe: (rate) => {
|
|
159
|
+
if (rate <= 0) {
|
|
160
|
+
return { type: 'free' };
|
|
161
|
+
}
|
|
162
|
+
else {
|
|
163
|
+
return {
|
|
164
|
+
type: 'fixed',
|
|
165
|
+
freCreationParams: {
|
|
166
|
+
fixedRateAddress: '0xcE0F39abB6DA2aE4d072DA78FA0A711cBB62764E',
|
|
167
|
+
baseTokenAddress: '0xdd0a0278f6BAF167999ccd8Aa6C11A9e2fA37F0a',
|
|
168
|
+
baseTokenDecimals: 6, // adapted for EUROe decimals
|
|
169
|
+
datatokenDecimals: 18,
|
|
170
|
+
fixedRate: `${rate}`,
|
|
171
|
+
marketFee: '0',
|
|
172
|
+
marketFeeCollector: '0x0000000000000000000000000000000000000000'
|
|
173
|
+
}
|
|
174
|
+
};
|
|
175
|
+
}
|
|
176
|
+
}
|
|
177
|
+
}
|
|
178
|
+
};
|
|
179
|
+
//# sourceMappingURL=config.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"config.js","sourceRoot":"","sources":["../src/config.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,27 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
3
|
+
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
4
|
+
};
|
|
5
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
|
+
exports.exportKeyAsJson = exportKeyAsJson;
|
|
7
|
+
const fs_1 = __importDefault(require("fs"));
|
|
8
|
+
const readline_sync_1 = __importDefault(require("readline-sync"));
|
|
9
|
+
const ethereumjs_wallet_1 = __importDefault(require("ethereumjs-wallet"));
|
|
10
|
+
function exportKeyAsJson() {
|
|
11
|
+
const pk = readline_sync_1.default.question('\nExporting your private key as a JSON file... \n' +
|
|
12
|
+
'First, get a copy of your private key from Metamask.\n' +
|
|
13
|
+
'\t 1.) On the upper right menu, select "Account details", then "Show private key". \n' +
|
|
14
|
+
'\t 2.) After providing your MetaMask password and revealing, click the button to copy it. \n' +
|
|
15
|
+
'\t 3.) Then, please, paste your private key here: ', { hideEchoBack: true });
|
|
16
|
+
const pkBuffer = Buffer.from(pk, 'hex');
|
|
17
|
+
const account = ethereumjs_wallet_1.default.fromPrivateKey(pkBuffer);
|
|
18
|
+
const password = readline_sync_1.default.question('Finally, to securely store your private key, please, enter a password to encrypt it: ', { hideEchoBack: true });
|
|
19
|
+
const address = account.getAddress().toString('hex');
|
|
20
|
+
console.log(`Generating encrypted file to store your private key, which corresponds to you account ${address}`);
|
|
21
|
+
account.toV3(password).then(value => {
|
|
22
|
+
const file = `${address}.json`;
|
|
23
|
+
fs_1.default.writeFileSync(file, JSON.stringify(value));
|
|
24
|
+
console.log(`Your encrypted private key has been saved to ${file}\n`);
|
|
25
|
+
});
|
|
26
|
+
}
|
|
27
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/export-key-as-json/index.ts"],"names":[],"mappings":";;;;;AAIA,0CAsBC;AA1BD,4CAAoB;AACpB,kEAAyC;AACzC,0EAAuC;AAEvC,SAAgB,eAAe;IAC3B,MAAM,EAAE,GAAG,uBAAY,CAAC,QAAQ,CAAC,mDAAmD;QAChF,wDAAwD;QACxD,uFAAuF;QACvF,8FAA8F;QAC9F,oDAAoD,EAAE,EAAC,YAAY,EAAE,IAAI,EAAC,CAAC,CAAC;IAEhF,MAAM,QAAQ,GAAG,MAAM,CAAC,IAAI,CAAC,EAAE,EAAE,KAAK,CAAC,CAAC;IACxC,MAAM,OAAO,GAAG,2BAAM,CAAC,cAAc,CAAC,QAAQ,CAAC,CAAC;IAEhD,MAAM,QAAQ,GAAG,uBAAY,CAAC,QAAQ,CAClC,uFAAuF,EACvF,EAAC,YAAY,EAAE,IAAI,EAAC,CAAC,CAAC;IAE1B,MAAM,OAAO,GAAG,OAAO,CAAC,UAAU,EAAE,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAA;IACpD,OAAO,CAAC,GAAG,CAAC,yFAAyF,OAAO,EAAE,CAAC,CAAC;IAEhH,OAAO,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,EAAE;QAChC,MAAM,IAAI,GAAG,GAAG,OAAO,OAAO,CAAA;QAC9B,YAAE,CAAC,aAAa,CAAC,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC,CAAA;QAC7C,OAAO,CAAC,GAAG,CAAC,gDAAgD,IAAI,IAAI,CAAC,CAAC;IAC1E,CAAC,CAAC,CAAC;AACP,CAAC"}
|
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
const process_1 = require("process");
|
|
4
|
+
const path_1 = require("path");
|
|
5
|
+
const fs_1 = require("fs");
|
|
6
|
+
const did_web_generator_1 = require("@gaia-x/did-web-generator");
|
|
7
|
+
async function generateDidWeb(baseUrl, certificateFilePath) {
|
|
8
|
+
const x509 = (0, fs_1.readFileSync)(certificateFilePath, 'utf8');
|
|
9
|
+
const didJson = await (0, did_web_generator_1.createDidDocument)(baseUrl, (0, path_1.basename)(certificateFilePath), x509);
|
|
10
|
+
const folder = (0, path_1.dirname)(certificateFilePath);
|
|
11
|
+
console.log('Writing DID Web document to ' + (0, path_1.resolve)(folder, 'did.json'));
|
|
12
|
+
(0, fs_1.writeFileSync)((0, path_1.resolve)(folder, 'did.json'), JSON.stringify(didJson, null, 2));
|
|
13
|
+
}
|
|
14
|
+
if (process_1.argv.length < 3) {
|
|
15
|
+
console.log('Usage: npm run generate-did-web -- <baseUrl> <certificateFileName>');
|
|
16
|
+
process.exit(1);
|
|
17
|
+
}
|
|
18
|
+
else {
|
|
19
|
+
console.log('Generating DID Web document for ' + process_1.argv[2] + ' with certificate ' + process_1.argv[3]);
|
|
20
|
+
generateDidWeb(process_1.argv[2], process_1.argv[3]).then(r => console.log('Done'));
|
|
21
|
+
}
|
|
22
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/gaia-x_compliance/generate-did-web/index.ts"],"names":[],"mappings":";;AAAA,qCAA+B;AAC/B,+BAAkD;AAClD,2BAAiD;AACjD,iEAA8D;AAE9D,KAAK,UAAU,cAAc,CAAC,OAAe,EAAE,mBAA2B;IACtE,MAAM,IAAI,GAAG,IAAA,iBAAY,EAAC,mBAAmB,EAAE,MAAM,CAAC,CAAC;IACvD,MAAM,OAAO,GAAG,MAAM,IAAA,qCAAiB,EAAC,OAAO,EAAE,IAAA,eAAQ,EAAC,mBAAmB,CAAC,EAAE,IAAI,CAAC,CAAC;IACtF,MAAM,MAAM,GAAG,IAAA,cAAO,EAAC,mBAAmB,CAAC,CAAC;IAC5C,OAAO,CAAC,GAAG,CAAC,8BAA8B,GAAG,IAAA,cAAO,EAAC,MAAM,EAAE,UAAU,CAAC,CAAC,CAAC;IAC1E,IAAA,kBAAa,EAAC,IAAA,cAAO,EAAC,MAAM,EAAE,UAAU,CAAC,EAAE,IAAI,CAAC,SAAS,CAAC,OAAO,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC,CAAC;AACjF,CAAC;AAED,IAAI,cAAI,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;IAClB,OAAO,CAAC,GAAG,CAAC,oEAAoE,CAAC,CAAC;IAClF,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;AACpB,CAAC;KAAM,CAAC;IACJ,OAAO,CAAC,GAAG,CAAC,kCAAkC,GAAG,cAAI,CAAC,CAAC,CAAC,GAAG,oBAAoB,GAAG,cAAI,CAAC,CAAC,CAAC,CAAC,CAAC;IAC3F,cAAc,CAAC,cAAI,CAAC,CAAC,CAAC,EAAE,cAAI,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,OAAO,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC,CAAC;AACpE,CAAC"}
|
|
@@ -0,0 +1,137 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
|
3
|
+
if (k2 === undefined) k2 = k;
|
|
4
|
+
var desc = Object.getOwnPropertyDescriptor(m, k);
|
|
5
|
+
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
|
|
6
|
+
desc = { enumerable: true, get: function() { return m[k]; } };
|
|
7
|
+
}
|
|
8
|
+
Object.defineProperty(o, k2, desc);
|
|
9
|
+
}) : (function(o, m, k, k2) {
|
|
10
|
+
if (k2 === undefined) k2 = k;
|
|
11
|
+
o[k2] = m[k];
|
|
12
|
+
}));
|
|
13
|
+
var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
|
|
14
|
+
Object.defineProperty(o, "default", { enumerable: true, value: v });
|
|
15
|
+
}) : function(o, v) {
|
|
16
|
+
o["default"] = v;
|
|
17
|
+
});
|
|
18
|
+
var __importStar = (this && this.__importStar) || function (mod) {
|
|
19
|
+
if (mod && mod.__esModule) return mod;
|
|
20
|
+
var result = {};
|
|
21
|
+
if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
|
|
22
|
+
__setModuleDefault(result, mod);
|
|
23
|
+
return result;
|
|
24
|
+
};
|
|
25
|
+
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
26
|
+
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
27
|
+
};
|
|
28
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
29
|
+
const process_1 = require("process");
|
|
30
|
+
const path_1 = require("path");
|
|
31
|
+
const fs_1 = require("fs");
|
|
32
|
+
const Handlebars = __importStar(require("handlebars"));
|
|
33
|
+
const crypto_1 = require("crypto");
|
|
34
|
+
const json_web_signature_2020_1 = require("@gaia-x/json-web-signature-2020");
|
|
35
|
+
const axios_1 = __importDefault(require("axios"));
|
|
36
|
+
function generateSignedDocument(data, templateFile, signer) {
|
|
37
|
+
const fileContent = (0, fs_1.readFileSync)((0, path_1.resolve)('src/gaia-x_compliance/', templateFile), 'utf-8');
|
|
38
|
+
const template = Handlebars.compile(fileContent, { noEscape: true });
|
|
39
|
+
const document = JSON.parse(template(data));
|
|
40
|
+
return signer.sign(document);
|
|
41
|
+
}
|
|
42
|
+
async function generateParticipantVC(folder, data, signer) {
|
|
43
|
+
const participantVCSigned = await generateSignedDocument(data, 'templates/participant.hbs', signer);
|
|
44
|
+
(0, fs_1.writeFileSync)((0, path_1.resolve)(folder, data.participant_name + '.participant.json'), JSON.stringify(participantVCSigned, null, 2), 'utf-8');
|
|
45
|
+
console.log(`Verifiable Credential for participant ${data.participant_legal_name} ` +
|
|
46
|
+
`successfully generated and stored in ${data.participant_name}.participant.json`);
|
|
47
|
+
}
|
|
48
|
+
async function generateParticipantTandCVC(folder, data, signer) {
|
|
49
|
+
const tandcVCSigned = await generateSignedDocument(data, 'templates/tandc.hbs', signer);
|
|
50
|
+
(0, fs_1.writeFileSync)((0, path_1.resolve)(folder, data.participant_name + '.tandc.json'), JSON.stringify(tandcVCSigned, null, 2), 'utf-8');
|
|
51
|
+
console.log(`Signed Terms and Conditions for ${data.participant_legal_name} ` +
|
|
52
|
+
`successfully generated and stored in ${data.participant_name}.tanc.json`);
|
|
53
|
+
}
|
|
54
|
+
async function generateParticipantLNRVC(folder, data) {
|
|
55
|
+
var _a;
|
|
56
|
+
const notaryService = "https://registrationnumber.notary.lab.gaia-x.eu/v1-staging/registrationNumberVC";
|
|
57
|
+
const fileContent = (0, fs_1.readFileSync)((0, path_1.resolve)('src/gaia-x_compliance/', 'templates/lrn-request.hbs'), 'utf-8');
|
|
58
|
+
const lnrRequestTemplate = Handlebars.compile(fileContent);
|
|
59
|
+
const lnrRequest = lnrRequestTemplate(data);
|
|
60
|
+
try {
|
|
61
|
+
const response = await axios_1.default.post(`${notaryService}?vcid=https://${data.issuer_domain}/.well-known/${data.participant_name}.lrn.json`, JSON.parse(lnrRequest));
|
|
62
|
+
if (response.status === 200) {
|
|
63
|
+
const lrn = response.data;
|
|
64
|
+
(0, fs_1.writeFileSync)((0, path_1.resolve)(folder, data.participant_name + '.lrn.json'), JSON.stringify(lrn, null, 2), 'utf-8');
|
|
65
|
+
console.log(`Legal Registration Number for ${data.participant_legal_name} ` +
|
|
66
|
+
`successfully generated and stored in ${data.participant_name}.lrn.json`);
|
|
67
|
+
}
|
|
68
|
+
else {
|
|
69
|
+
console.error(`Error generating Legal Registration Number for ${data.participant_legal_name}`);
|
|
70
|
+
console.error(response === null || response === void 0 ? void 0 : response.data);
|
|
71
|
+
}
|
|
72
|
+
}
|
|
73
|
+
catch (e) {
|
|
74
|
+
console.error(`Error generating Legal Registration Number for ${data.participant_legal_name}`);
|
|
75
|
+
console.error((_a = e.response) === null || _a === void 0 ? void 0 : _a.data);
|
|
76
|
+
}
|
|
77
|
+
}
|
|
78
|
+
async function generateParticipantVP(folder, data) {
|
|
79
|
+
var _a;
|
|
80
|
+
const complianceService = "https://compliance.lab.gaia-x.eu/v1-staging/api/credential-offers";
|
|
81
|
+
const vp = {
|
|
82
|
+
"@context": "https://www.w3.org/2018/credentials/v1",
|
|
83
|
+
"type": "VerifiablePresentation",
|
|
84
|
+
"verifiableCredential": [
|
|
85
|
+
JSON.parse((0, fs_1.readFileSync)((0, path_1.resolve)(folder, data.participant_name + '.participant.json'), 'utf-8')),
|
|
86
|
+
JSON.parse((0, fs_1.readFileSync)((0, path_1.resolve)(folder, data.participant_name + '.tandc.json'), 'utf-8')),
|
|
87
|
+
JSON.parse((0, fs_1.readFileSync)((0, path_1.resolve)(folder, data.participant_name + '.lrn.json'), 'utf-8'))
|
|
88
|
+
]
|
|
89
|
+
};
|
|
90
|
+
try {
|
|
91
|
+
const response = await axios_1.default.post(`${complianceService}?` +
|
|
92
|
+
`vcid=https://${data.issuer_domain}/.well-known/${data.participant_name}.compliance.json`, vp);
|
|
93
|
+
if (response.status === 201) {
|
|
94
|
+
const lrn = response.data;
|
|
95
|
+
(0, fs_1.writeFileSync)((0, path_1.resolve)(folder, data.participant_name + '.compliance.json'), JSON.stringify(lrn, null, 2), 'utf-8');
|
|
96
|
+
console.log(`Gaia-X Compliance verified for ${data.participant_legal_name} credentials ` +
|
|
97
|
+
`and stored in ${data.participant_name}.compliance.json`);
|
|
98
|
+
}
|
|
99
|
+
else {
|
|
100
|
+
console.error(`Error generating Compliance for ${data.participant_legal_name}`);
|
|
101
|
+
console.error(response === null || response === void 0 ? void 0 : response.data);
|
|
102
|
+
}
|
|
103
|
+
}
|
|
104
|
+
catch (e) {
|
|
105
|
+
console.error(`Error generating Compliance for ${data.participant_legal_name}`);
|
|
106
|
+
console.error((_a = e.response) === null || _a === void 0 ? void 0 : _a.data);
|
|
107
|
+
}
|
|
108
|
+
}
|
|
109
|
+
if (process_1.argv.length < 3) {
|
|
110
|
+
console.log('Usage: npm run generate-participant-vcs -- <participant.data.json> <did.json>');
|
|
111
|
+
process.exit(1);
|
|
112
|
+
}
|
|
113
|
+
else {
|
|
114
|
+
const folder = (0, path_1.dirname)(process_1.argv[2]);
|
|
115
|
+
const participantData = JSON.parse((0, fs_1.readFileSync)(process_1.argv[2], 'utf-8'));
|
|
116
|
+
participantData.issuance_date = new Date().toISOString();
|
|
117
|
+
const didJson = JSON.parse((0, fs_1.readFileSync)(process_1.argv[3], 'utf-8'));
|
|
118
|
+
participantData.issuer_domain = didJson.id.substring(didJson.id.lastIndexOf(':') + 1);
|
|
119
|
+
console.log(`Generating Gaia-X credentials for participant ${participantData.participant_legal_name} ` +
|
|
120
|
+
`with issuer ${participantData.issuer_domain}`);
|
|
121
|
+
const pkcs1 = (0, fs_1.readFileSync)((0, path_1.resolve)((0, path_1.dirname)(process_1.argv[3]), 'certificate.key'), 'utf-8');
|
|
122
|
+
const key = (0, crypto_1.createPrivateKey)(pkcs1);
|
|
123
|
+
const signer = new json_web_signature_2020_1.GaiaXSignatureSigner({
|
|
124
|
+
privateKey: key,
|
|
125
|
+
privateKeyAlg: didJson.verificationMethod[0].publicKeyJwk.alg,
|
|
126
|
+
verificationMethod: didJson.verificationMethod[0].id
|
|
127
|
+
});
|
|
128
|
+
Promise.all([
|
|
129
|
+
generateParticipantVC(folder, participantData, signer),
|
|
130
|
+
generateParticipantTandCVC(folder, participantData, signer),
|
|
131
|
+
generateParticipantLNRVC(folder, participantData)
|
|
132
|
+
])
|
|
133
|
+
.then(() => {
|
|
134
|
+
generateParticipantVP(folder, participantData);
|
|
135
|
+
});
|
|
136
|
+
}
|
|
137
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/gaia-x_compliance/generate-participant-vcs/index.ts"],"names":[],"mappings":"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"}
|
package/dist/index.js
ADDED
|
@@ -0,0 +1,241 @@
|
|
|
1
|
+
#! /usr/bin/env NODE_NO_WARNINGS=1 node
|
|
2
|
+
"use strict";
|
|
3
|
+
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
4
|
+
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
5
|
+
};
|
|
6
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
7
|
+
const dotenv_1 = __importDefault(require("dotenv"));
|
|
8
|
+
dotenv_1.default.config();
|
|
9
|
+
const fs_1 = require("fs");
|
|
10
|
+
const figlet_1 = require("figlet");
|
|
11
|
+
const readline_sync_1 = __importDefault(require("readline-sync"));
|
|
12
|
+
const commander_1 = require("commander");
|
|
13
|
+
const export_key_as_json_1 = require("./export-key-as-json");
|
|
14
|
+
const utils_1 = require("./utils");
|
|
15
|
+
const ethereumjs_wallet_1 = __importDefault(require("ethereumjs-wallet"));
|
|
16
|
+
const nautilus_1 = require("@deltadao/nautilus");
|
|
17
|
+
const program = new commander_1.Command();
|
|
18
|
+
program
|
|
19
|
+
.name("pontus-x_cli")
|
|
20
|
+
.version("0.0.1")
|
|
21
|
+
.description("CLI for managing the Pontus-X ecosystem");
|
|
22
|
+
program.command("export-private-key")
|
|
23
|
+
.description("Export your private key as a JSON file," +
|
|
24
|
+
" to use latter with the login command or for Pontus-X portals automation")
|
|
25
|
+
.action(() => {
|
|
26
|
+
(0, export_key_as_json_1.exportKeyAsJson)();
|
|
27
|
+
});
|
|
28
|
+
program.command("login <keyFile.json>")
|
|
29
|
+
.description("Login to retrieve your private key from a JSON key store and store it in .env")
|
|
30
|
+
.action((keyFileName) => {
|
|
31
|
+
const keyStore = JSON.parse((0, fs_1.readFileSync)(keyFileName, 'utf8'));
|
|
32
|
+
const password = readline_sync_1.default.question(`Enter the password to decrypt the key file ${keyFileName}: `, { hideEchoBack: true });
|
|
33
|
+
ethereumjs_wallet_1.default.fromV3(keyStore, password).then((wallet) => {
|
|
34
|
+
console.log(`Storing your private key for this session with Pontus-X CLI, do not forget to logout.\n`);
|
|
35
|
+
const envConfig = dotenv_1.default.parse((0, fs_1.readFileSync)('.env', 'utf8'));
|
|
36
|
+
envConfig.PRIVATE_KEY = wallet.getPrivateKeyString();
|
|
37
|
+
const updatedEnvConfig = Object.entries(envConfig)
|
|
38
|
+
.map(([key, value]) => `${key}=${value}`)
|
|
39
|
+
.join('\n');
|
|
40
|
+
(0, fs_1.writeFileSync)('.env', updatedEnvConfig, 'utf8');
|
|
41
|
+
process.exit(0);
|
|
42
|
+
}).catch((error) => {
|
|
43
|
+
console.error(`Error decrypting the key file. ${error}\n`);
|
|
44
|
+
process.exit(1);
|
|
45
|
+
});
|
|
46
|
+
});
|
|
47
|
+
program.command("logout")
|
|
48
|
+
.description("Logout to remove your private key from .env file")
|
|
49
|
+
.action(() => {
|
|
50
|
+
const envConfig = dotenv_1.default.parse((0, fs_1.readFileSync)('.env', 'utf8'));
|
|
51
|
+
delete envConfig.PRIVATE_KEY;
|
|
52
|
+
const updatedEnvConfig = Object.entries(envConfig)
|
|
53
|
+
.map(([key, value]) => `${key}=${value}`)
|
|
54
|
+
.join('\n');
|
|
55
|
+
(0, fs_1.writeFileSync)('.env', updatedEnvConfig, 'utf8');
|
|
56
|
+
process.exit(0);
|
|
57
|
+
});
|
|
58
|
+
program.command("get <did>")
|
|
59
|
+
.description("Get the available metadata to the asset with the given DID")
|
|
60
|
+
.action(async (did, options) => {
|
|
61
|
+
console.log(`Retrieving asset metadata for DID: ${did}`);
|
|
62
|
+
const { nautilus } = await utils_1.Connection.connect();
|
|
63
|
+
const aquariusAsset = await nautilus.getAquariusAsset(did);
|
|
64
|
+
console.log(`Asset ${did} metadata: \n\n ${JSON.stringify(aquariusAsset, null, 2)} \n`);
|
|
65
|
+
process.exit(0);
|
|
66
|
+
});
|
|
67
|
+
program.command("access <did>")
|
|
68
|
+
.description("Access an asset that can be downloaded given its DID")
|
|
69
|
+
.action(async (did, options) => {
|
|
70
|
+
const { nautilus } = await utils_1.Connection.connect();
|
|
71
|
+
console.log(`Getting access to downloadable asset: ${did}`);
|
|
72
|
+
const accessUrl = await nautilus.access({ assetDid: did });
|
|
73
|
+
console.log(`Download URL: ${accessUrl}\n`);
|
|
74
|
+
process.exit(0);
|
|
75
|
+
});
|
|
76
|
+
program.command("revoke <did>")
|
|
77
|
+
.description("Publisher revocation of an owned DID ")
|
|
78
|
+
.action(async (did, options) => {
|
|
79
|
+
const connection = await utils_1.Connection.connect();
|
|
80
|
+
if (readline_sync_1.default.keyInYNStrict(`Revoke asset ${did}? `)) {
|
|
81
|
+
try {
|
|
82
|
+
const aquariusAsset = await connection.nautilus.getAquariusAsset(did);
|
|
83
|
+
console.log('Sending transaction to revoke asset...');
|
|
84
|
+
const tx = await connection.nautilus.setAssetLifecycleState(aquariusAsset, nautilus_1.LifecycleStates.REVOKED_BY_PUBLISHER);
|
|
85
|
+
console.log(`Asset revoked, ` +
|
|
86
|
+
`transaction: ${connection.networkConfig.explorerUri}/tx/${tx.transactionHash}\n`);
|
|
87
|
+
}
|
|
88
|
+
catch (e) {
|
|
89
|
+
console.error(`Error revoking asset: ${e}`);
|
|
90
|
+
}
|
|
91
|
+
}
|
|
92
|
+
process.exit(0);
|
|
93
|
+
});
|
|
94
|
+
program.command("self-description <did> <sdurl>")
|
|
95
|
+
.description("Associate Gaia-X Self-Description to the asset with the given DID")
|
|
96
|
+
.action(async (did, sdurl) => {
|
|
97
|
+
const connection = await utils_1.Connection.connect();
|
|
98
|
+
if (readline_sync_1.default.keyInYNStrict(`Attach self description at ${sdurl} to asset ${did}? `)) {
|
|
99
|
+
try {
|
|
100
|
+
const aquariusAsset = await connection.nautilus.getAquariusAsset(did);
|
|
101
|
+
const assetBuilder = new nautilus_1.AssetBuilder(aquariusAsset);
|
|
102
|
+
const asset = assetBuilder.addAdditionalInformation({
|
|
103
|
+
"gaiaXInformation": {
|
|
104
|
+
"serviceSD": {
|
|
105
|
+
"url": sdurl,
|
|
106
|
+
"isVerified": true
|
|
107
|
+
}
|
|
108
|
+
}
|
|
109
|
+
}).build();
|
|
110
|
+
const result = await connection.nautilus.edit(asset);
|
|
111
|
+
console.log(`Self-description associated to the asset, ` +
|
|
112
|
+
`transaction: ${connection.networkConfig.explorerUri}/tx/${result.setMetadataTxReceipt.transactionHash}\n`);
|
|
113
|
+
}
|
|
114
|
+
catch (e) {
|
|
115
|
+
console.error(`Error attaching self description: ${e}`);
|
|
116
|
+
}
|
|
117
|
+
}
|
|
118
|
+
process.exit(0);
|
|
119
|
+
});
|
|
120
|
+
program.command("change-price <did> <newPrice>")
|
|
121
|
+
.description("Change the price keeping the existing currency for an asset with the given DID")
|
|
122
|
+
.action(async (did, newPrice) => {
|
|
123
|
+
var _a, _b;
|
|
124
|
+
const connection = await utils_1.Connection.connect();
|
|
125
|
+
const newPriceNumber = parseFloat(newPrice.replace(',', '.'));
|
|
126
|
+
if (readline_sync_1.default.keyInYNStrict(`Set the price to ${newPriceNumber.toString()} for asset ${did}? `)) {
|
|
127
|
+
try {
|
|
128
|
+
const aquariusAsset = await connection.nautilus.getAquariusAsset(did);
|
|
129
|
+
const assetBuilder = new nautilus_1.AssetBuilder(aquariusAsset);
|
|
130
|
+
const serviceId = (_b = (_a = aquariusAsset.services) === null || _a === void 0 ? void 0 : _a[0]) === null || _b === void 0 ? void 0 : _b.id;
|
|
131
|
+
const tx = await connection.nautilus.setServicePrice(aquariusAsset, serviceId, newPriceNumber.toString());
|
|
132
|
+
console.log(`Price updated for asset, ` +
|
|
133
|
+
`transaction: ${connection.networkConfig.explorerUri}/tx/${tx.transactionHash}\n`);
|
|
134
|
+
}
|
|
135
|
+
catch (e) {
|
|
136
|
+
console.error(`Error changing the price: ${e}`);
|
|
137
|
+
}
|
|
138
|
+
}
|
|
139
|
+
process.exit(0);
|
|
140
|
+
});
|
|
141
|
+
program.command("edit-algo <did> <image> <tag> <checksum>")
|
|
142
|
+
.description("Change the container metadata for a given algorithm DID")
|
|
143
|
+
.action(async (did, image, tag, checksum) => {
|
|
144
|
+
const connection = await utils_1.Connection.connect();
|
|
145
|
+
if (readline_sync_1.default.keyInYNStrict(`Change the container metadata for asset ${did}` +
|
|
146
|
+
`to ${image}:${tag} and image checksum ${checksum}? `)) {
|
|
147
|
+
try {
|
|
148
|
+
const aquariusAsset = await connection.nautilus.getAquariusAsset(did);
|
|
149
|
+
const assetBuilder = new nautilus_1.AssetBuilder(aquariusAsset);
|
|
150
|
+
const asset = assetBuilder.setAlgorithm(Object.assign(Object.assign({}, aquariusAsset.metadata.algorithm), { container: Object.assign(Object.assign({}, aquariusAsset.metadata.algorithm.container), { // Start with existing container metadata
|
|
151
|
+
image,
|
|
152
|
+
tag,
|
|
153
|
+
checksum }) })).build();
|
|
154
|
+
const result = await connection.nautilus.edit(asset);
|
|
155
|
+
console.log(`Container metadata updated for the algorithm, ` +
|
|
156
|
+
`transaction: ${connection.networkConfig.explorerUri}/tx/${result.setMetadataTxReceipt.transactionHash}\n`);
|
|
157
|
+
}
|
|
158
|
+
catch (e) {
|
|
159
|
+
console.error(`Error editing container metadata: ${e}`);
|
|
160
|
+
}
|
|
161
|
+
}
|
|
162
|
+
process.exit(0);
|
|
163
|
+
});
|
|
164
|
+
program.command("edit-trusted-algos <did> <algos...>")
|
|
165
|
+
.description("Overwrite the trusted algorithms for a data asset to the provided algorithm DIDs")
|
|
166
|
+
.action(async (did, algos) => {
|
|
167
|
+
const connection = await utils_1.Connection.connect();
|
|
168
|
+
if (readline_sync_1.default.keyInYNStrict(`Changing the trusted algorithms for ${did} ` +
|
|
169
|
+
`to [${algos.join(', ')}]? `)) {
|
|
170
|
+
try {
|
|
171
|
+
const aquariusAsset = await connection.nautilus.getAquariusAsset(did);
|
|
172
|
+
const assetBuilder = new nautilus_1.AssetBuilder(aquariusAsset);
|
|
173
|
+
const serviceBuilder = new nautilus_1.ServiceBuilder({ aquariusAsset, serviceId: aquariusAsset.services[0].id });
|
|
174
|
+
serviceBuilder.addTrustedAlgorithms(algos.map(algo => ({ did: algo })));
|
|
175
|
+
const service = serviceBuilder.build();
|
|
176
|
+
const asset = assetBuilder.addService(service).build();
|
|
177
|
+
const result = await connection.nautilus.edit(asset);
|
|
178
|
+
console.log(`Edited the trusted algorithms, ` +
|
|
179
|
+
`transaction: ${connection.networkConfig.explorerUri}/tx/${result.setMetadataTxReceipt.transactionHash}\n`);
|
|
180
|
+
}
|
|
181
|
+
catch (e) {
|
|
182
|
+
console.error(`Error editing the trusted algorithms: ${e}`);
|
|
183
|
+
}
|
|
184
|
+
}
|
|
185
|
+
process.exit(0);
|
|
186
|
+
});
|
|
187
|
+
program.command("edit-dataset-url <did> <url>")
|
|
188
|
+
.description("Change the URL of a dataset DID")
|
|
189
|
+
.action(async (did, url) => {
|
|
190
|
+
const connection = await utils_1.Connection.connect();
|
|
191
|
+
if (readline_sync_1.default.keyInYNStrict(`Changing the URL for ${did} ` +
|
|
192
|
+
`to ${url}? `)) {
|
|
193
|
+
try {
|
|
194
|
+
const aquariusAsset = await connection.nautilus.getAquariusAsset(did);
|
|
195
|
+
const assetBuilder = new nautilus_1.AssetBuilder(aquariusAsset);
|
|
196
|
+
const serviceBuilder = new nautilus_1.ServiceBuilder({ aquariusAsset, serviceId: aquariusAsset.services[0].id });
|
|
197
|
+
serviceBuilder.addFile({ type: 'url', url, method: 'GET' });
|
|
198
|
+
const service = serviceBuilder.build();
|
|
199
|
+
const asset = assetBuilder.addService(service).build();
|
|
200
|
+
const result = await connection.nautilus.edit(asset);
|
|
201
|
+
console.log(`Changed dataset URL, ` +
|
|
202
|
+
`transaction: ${connection.networkConfig.explorerUri}/tx/${result.setMetadataTxReceipt.transactionHash}\n`);
|
|
203
|
+
}
|
|
204
|
+
catch (e) {
|
|
205
|
+
console.error(`Error changing dataset URL: ${e}`);
|
|
206
|
+
}
|
|
207
|
+
}
|
|
208
|
+
process.exit(0);
|
|
209
|
+
});
|
|
210
|
+
program
|
|
211
|
+
.command("publish <script>")
|
|
212
|
+
.description("Publish the asset as instructed in the provided script, " +
|
|
213
|
+
"for instance the sample scripts in https://github.com/rhizomik/pontus-x_cli/tree/master/src/publish/samples'")
|
|
214
|
+
.requiredOption("-p, --provider <provider>", "The Provider URL")
|
|
215
|
+
.option("--dry-run", "Dry run the publishing process")
|
|
216
|
+
.action(async (script, options) => {
|
|
217
|
+
const connection = await utils_1.Connection.connect();
|
|
218
|
+
console.log(`Publishing asset ${script} in provider ${options.provider} from wallet ${connection.wallet.address}`);
|
|
219
|
+
try {
|
|
220
|
+
await (0, utils_1.invokeFunctionFromFile)(`${script}/index.ts`, 'publish', script, connection, options.provider, options.dryRun);
|
|
221
|
+
process.exit(0);
|
|
222
|
+
}
|
|
223
|
+
catch (error) {
|
|
224
|
+
console.error(error);
|
|
225
|
+
process.exit(1);
|
|
226
|
+
}
|
|
227
|
+
});
|
|
228
|
+
try {
|
|
229
|
+
program.addHelpText('beforeAll', (0, figlet_1.textSync)("Pontus-X CLI", 'Doom'));
|
|
230
|
+
program.parse(process.argv);
|
|
231
|
+
}
|
|
232
|
+
catch (e) {
|
|
233
|
+
if (e instanceof Error) {
|
|
234
|
+
console.error(e.message + '\n');
|
|
235
|
+
}
|
|
236
|
+
else {
|
|
237
|
+
console.error(e);
|
|
238
|
+
}
|
|
239
|
+
process.exit(1);
|
|
240
|
+
}
|
|
241
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,59 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
const fs_1 = require("fs");
|
|
4
|
+
const nautilus_1 = require("@deltadao/nautilus");
|
|
5
|
+
const nautilus_2 = require("@deltadao/nautilus");
|
|
6
|
+
const publish = async (folder, connection, provider, dryRun) => {
|
|
7
|
+
const assetBuilder = new nautilus_1.AssetBuilder();
|
|
8
|
+
assetBuilder.setType('algorithm')
|
|
9
|
+
.setName('Exploratory Data Analysis')
|
|
10
|
+
.setAuthor('Universitat de Lleida (UdL)')
|
|
11
|
+
.setOwner(connection.wallet.address)
|
|
12
|
+
.setDescription((0, fs_1.readFileSync)(`${folder}/description.md`, 'utf8'))
|
|
13
|
+
.addTags(['eda', 'exploratory data analysis', 'profiling', 'tabular-data', 'pandas', 'udl'])
|
|
14
|
+
.setLicense('MIT')
|
|
15
|
+
.setNftData({
|
|
16
|
+
name: 'UdL EDA Algo',
|
|
17
|
+
symbol: 'UDL-EDA',
|
|
18
|
+
templateIndex: 1,
|
|
19
|
+
tokenURI: 'https://docs.profiling.ydata.ai/latest/_static/img/multivariate_profiling.png',
|
|
20
|
+
transferable: false
|
|
21
|
+
});
|
|
22
|
+
const algoMetadata = {
|
|
23
|
+
language: 'python',
|
|
24
|
+
version: '0.2',
|
|
25
|
+
container: {
|
|
26
|
+
entrypoint: 'python $ALGO',
|
|
27
|
+
image: 'rogargon/pandas-profiling',
|
|
28
|
+
tag: '4.9.0',
|
|
29
|
+
checksum: 'sha256:105d404c9b00438c08c2199d5356fcd17d7349cff514c923d066ced56d9baa93'
|
|
30
|
+
}
|
|
31
|
+
};
|
|
32
|
+
assetBuilder.setAlgorithm(algoMetadata);
|
|
33
|
+
const serviceBuilder = new nautilus_2.ServiceBuilder({ serviceType: nautilus_2.ServiceTypes.ACCESS, fileType: nautilus_2.FileTypes.URL });
|
|
34
|
+
const urlFile = {
|
|
35
|
+
type: 'url',
|
|
36
|
+
url: 'https://raw.githubusercontent.com/rogargon/ocean-algo/eda/eda.py',
|
|
37
|
+
method: 'GET'
|
|
38
|
+
};
|
|
39
|
+
const service = serviceBuilder
|
|
40
|
+
.setServiceEndpoint(provider) // the access controller to be in control of this asset
|
|
41
|
+
.setTimeout(0) // Timeout in seconds (0 means unlimited access after purchase)
|
|
42
|
+
.addFile(urlFile)
|
|
43
|
+
.setPricing(connection.pricingConfig.fixedRateEUROe(0))
|
|
44
|
+
.setDatatokenNameAndSymbol('UdL EDA Algo', 'UDL-EDA')
|
|
45
|
+
.build();
|
|
46
|
+
assetBuilder.addService(service);
|
|
47
|
+
const asset = assetBuilder.build();
|
|
48
|
+
console.log(`Asset metadata: \n ${JSON.stringify(asset, null, 2)}`);
|
|
49
|
+
if (!dryRun) {
|
|
50
|
+
console.log(`Publishing asset...`);
|
|
51
|
+
const result = await connection.nautilus.publish(asset);
|
|
52
|
+
console.log(`Asset published, ` +
|
|
53
|
+
`transaction: ${connection.networkConfig.explorerUri}/tx/${result.setMetadataTxReceipt.transactionHash}\n`);
|
|
54
|
+
}
|
|
55
|
+
else {
|
|
56
|
+
console.log('\nDry run completed. Asset not published.\n');
|
|
57
|
+
}
|
|
58
|
+
};
|
|
59
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/publish/samples/algo/index.ts"],"names":[],"mappings":";;AAAA,2BAAkC;AAClC,iDAAiD;AAEjD,iDAA4E;AAE5E,MAAM,OAAO,GAAG,KAAK,EAAE,MAAc,EAAE,UAAe,EAAE,QAAgB,EAAE,MAAe,EAAE,EAAE;IACzF,MAAM,YAAY,GAAG,IAAI,uBAAY,EAAE,CAAC;IACxC,YAAY,CAAC,OAAO,CAAC,WAAW,CAAC;SAC5B,OAAO,CAAC,2BAA2B,CAAC;SACpC,SAAS,CAAC,6BAA6B,CAAC;SACxC,QAAQ,CAAC,UAAU,CAAC,MAAM,CAAC,OAAO,CAAC;SACnC,cAAc,CAAC,IAAA,iBAAY,EAAC,GAAG,MAAM,iBAAiB,EAAE,MAAM,CAAC,CAAC;SAChE,OAAO,CAAC,CAAC,KAAK,EAAE,2BAA2B,EAAE,WAAW,EAAE,cAAc,EAAE,QAAQ,EAAE,KAAK,CAAC,CAAC;SAC3F,UAAU,CAAC,KAAK,CAAC;SACjB,UAAU,CAAC;QACR,IAAI,EAAE,cAAc;QACpB,MAAM,EAAE,SAAS;QACjB,aAAa,EAAE,CAAC;QAChB,QAAQ,EAAE,+EAA+E;QACzF,YAAY,EAAE,KAAK;KACtB,CAAC,CAAC;IACP,MAAM,YAAY,GAAG;QACjB,QAAQ,EAAE,QAAQ;QAClB,OAAO,EAAE,KAAK;QACd,SAAS,EAAE;YACP,UAAU,EAAE,cAAc;YAC1B,KAAK,EAAE,2BAA2B;YAClC,GAAG,EAAE,OAAO;YACZ,QAAQ,EAAE,yEAAyE;SACtF;KACJ,CAAC;IACF,YAAY,CAAC,YAAY,CAAC,YAAY,CAAC,CAAC;IACxC,MAAM,cAAc,GAChB,IAAI,yBAAc,CAAC,EAAC,WAAW,EAAE,uBAAY,CAAC,MAAM,EAAE,QAAQ,EAAE,oBAAS,CAAC,GAAG,EAAC,CAAC,CAAC;IACpF,MAAM,OAAO,GAA+B;QACxC,IAAI,EAAE,KAAK;QACX,GAAG,EAAE,kEAAkE;QACvE,MAAM,EAAE,KAAK;KAChB,CAAC;IACF,MAAM,OAAO,GAAG,cAAc;SACzB,kBAAkB,CAAC,QAAQ,CAAC,CAAC,uDAAuD;SACpF,UAAU,CAAC,CAAC,CAAC,CAAC,+DAA+D;SAC7E,OAAO,CAAC,OAAO,CAAC;SAChB,UAAU,CAAC,UAAU,CAAC,aAAa,CAAC,cAAc,CAAC,CAAC,CAAC,CAAC;SACtD,yBAAyB,CAAC,cAAc,EAAE,SAAS,CAAC;SACpD,KAAK,EAAE,CAAC;IACb,YAAY,CAAC,UAAU,CAAC,OAAO,CAAC,CAAC;IACjC,MAAM,KAAK,GAAG,YAAY,CAAC,KAAK,EAAE,CAAC;IACnC,OAAO,CAAC,GAAG,CAAC,sBAAsB,IAAI,CAAC,SAAS,CAAC,KAAK,EAAE,IAAI,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC;IAEpE,IAAI,CAAC,MAAM,EAAE,CAAC;QACV,OAAO,CAAC,GAAG,CAAC,qBAAqB,CAAC,CAAC;QACnC,MAAM,MAAM,GAAG,MAAM,UAAU,CAAC,QAAQ,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC;QACxD,OAAO,CAAC,GAAG,CAAC,mBAAmB;YAC3B,gBAAgB,UAAU,CAAC,aAAa,CAAC,WAAW,OAAO,MAAM,CAAC,oBAAoB,CAAC,eAAe,IAAI,CAAC,CAAC;IACpH,CAAC;SAAM,CAAC;QACJ,OAAO,CAAC,GAAG,CAAC,6CAA6C,CAAC,CAAC;IAC/D,CAAC;AACL,CAAC,CAAC"}
|
|
@@ -0,0 +1,52 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
const fs_1 = require("fs");
|
|
4
|
+
const nautilus_1 = require("@deltadao/nautilus");
|
|
5
|
+
const nautilus_2 = require("@deltadao/nautilus");
|
|
6
|
+
const publish = async (folder, connection, provider, dryRun) => {
|
|
7
|
+
const assetBuilder = new nautilus_1.AssetBuilder();
|
|
8
|
+
assetBuilder.setType('dataset')
|
|
9
|
+
.setName('Red Wine Dataset')
|
|
10
|
+
.setAuthor('Cortez et al., 2009')
|
|
11
|
+
.setOwner(connection.wallet.address)
|
|
12
|
+
.setDescription((0, fs_1.readFileSync)(`${folder}/description.md`, 'utf8'))
|
|
13
|
+
.addTags(['agriculture', 'wine', 'udl', 'tabular-data'])
|
|
14
|
+
.setLicense('CC-BY-4.0')
|
|
15
|
+
.setNftData({
|
|
16
|
+
name: 'Red Wine',
|
|
17
|
+
symbol: 'RED',
|
|
18
|
+
templateIndex: 1,
|
|
19
|
+
tokenURI: 'https://upload.wikimedia.org/wikipedia/commons/thumb/3/3c/Red_and_white_wine_12-2015.jpg/240px-Red_and_white_wine_12-2015.jpg',
|
|
20
|
+
transferable: false
|
|
21
|
+
})
|
|
22
|
+
.addLinks(['https://archive.ics.uci.edu/dataset/186/wine+quality']);
|
|
23
|
+
const serviceBuilder = new nautilus_2.ServiceBuilder({ serviceType: nautilus_2.ServiceTypes.COMPUTE, fileType: nautilus_2.FileTypes.URL });
|
|
24
|
+
const urlFile = {
|
|
25
|
+
type: 'url',
|
|
26
|
+
url: 'https://raw.githubusercontent.com/plotly/datasets/master/winequality-red.csv',
|
|
27
|
+
method: 'GET'
|
|
28
|
+
};
|
|
29
|
+
const service = serviceBuilder
|
|
30
|
+
.setServiceEndpoint(provider) // the access controller to be in control of this asset
|
|
31
|
+
.setTimeout(0) // Timeout in seconds (0 means unlimited access after purchase)
|
|
32
|
+
.addFile(urlFile)
|
|
33
|
+
.addTrustedAlgorithmPublisher(connection.wallet.address)
|
|
34
|
+
//.addTrustedAlgorithms([{ did: 'did:op:c1e39404719ee92613b3bf9c276bbdcd63473c1189b34cef9f3de22cdb8eaf53' }])
|
|
35
|
+
.allowAlgorithmNetworkAccess(false)
|
|
36
|
+
.setPricing(connection.pricingConfig.fixedRateEUROe(0))
|
|
37
|
+
.setDatatokenNameAndSymbol(`Red Wine`, `RED`)
|
|
38
|
+
.build();
|
|
39
|
+
assetBuilder.addService(service);
|
|
40
|
+
const asset = assetBuilder.build();
|
|
41
|
+
console.log(`Asset metadata: \n ${JSON.stringify(asset, null, 2)}`);
|
|
42
|
+
if (!dryRun) {
|
|
43
|
+
console.log(`Publishing asset...`);
|
|
44
|
+
const result = await connection.nautilus.publish(asset);
|
|
45
|
+
console.log(`Asset published, ` +
|
|
46
|
+
`transaction: ${connection.networkConfig.explorerUri}/tx/${result.setMetadataTxReceipt.transactionHash}\n`);
|
|
47
|
+
}
|
|
48
|
+
else {
|
|
49
|
+
console.log('\nDry run completed. Asset not published.\n');
|
|
50
|
+
}
|
|
51
|
+
};
|
|
52
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/publish/samples/data/index.ts"],"names":[],"mappings":";;AAAA,2BAAkC;AAClC,iDAAiD;AAEjD,iDAA4E;AAE5E,MAAM,OAAO,GAAG,KAAK,EAAE,MAAc,EAAE,UAAe,EAAE,QAAgB,EAAE,MAAe,EAAE,EAAE;IACzF,MAAM,YAAY,GAAG,IAAI,uBAAY,EAAE,CAAC;IACxC,YAAY,CAAC,OAAO,CAAC,SAAS,CAAC;SAC1B,OAAO,CAAC,kBAAkB,CAAC;SAC3B,SAAS,CAAC,qBAAqB,CAAC;SAChC,QAAQ,CAAC,UAAU,CAAC,MAAM,CAAC,OAAO,CAAC;SACnC,cAAc,CAAC,IAAA,iBAAY,EAAC,GAAG,MAAM,iBAAiB,EAAE,MAAM,CAAC,CAAC;SAChE,OAAO,CAAC,CAAC,aAAa,EAAE,MAAM,EAAE,KAAK,EAAE,cAAc,CAAC,CAAC;SACvD,UAAU,CAAC,WAAW,CAAC;SACvB,UAAU,CAAC;QACR,IAAI,EAAE,UAAU;QAChB,MAAM,EAAE,KAAK;QACb,aAAa,EAAE,CAAC;QAChB,QAAQ,EAAE,+HAA+H;QACzI,YAAY,EAAE,KAAK;KACtB,CAAC;SACD,QAAQ,CAAC,CAAC,sDAAsD,CAAC,CAAC,CAAA;IAEvE,MAAM,cAAc,GAChB,IAAI,yBAAc,CAAC,EAAE,WAAW,EAAE,uBAAY,CAAC,OAAO,EAAE,QAAQ,EAAE,oBAAS,CAAC,GAAG,EAAC,CAAC,CAAC;IACtF,MAAM,OAAO,GAA+B;QACxC,IAAI,EAAE,KAAK;QACX,GAAG,EAAE,8EAA8E;QACnF,MAAM,EAAE,KAAK;KAChB,CAAA;IACD,MAAM,OAAO,GAAG,cAAc;SACzB,kBAAkB,CAAC,QAAQ,CAAC,CAAC,uDAAuD;SACpF,UAAU,CAAC,CAAC,CAAC,CAAC,+DAA+D;SAC7E,OAAO,CAAC,OAAO,CAAC;SAChB,4BAA4B,CAAC,UAAU,CAAC,MAAM,CAAC,OAAO,CAAC;QACxD,6GAA6G;SAC5G,2BAA2B,CAAC,KAAK,CAAC;SAClC,UAAU,CAAC,UAAU,CAAC,aAAa,CAAC,cAAc,CAAC,CAAC,CAAC,CAAC;SACtD,yBAAyB,CAAC,UAAU,EAAE,KAAK,CAAC;SAC5C,KAAK,EAAE,CAAC;IACb,YAAY,CAAC,UAAU,CAAC,OAAO,CAAC,CAAC;IACjC,MAAM,KAAK,GAAG,YAAY,CAAC,KAAK,EAAE,CAAC;IACnC,OAAO,CAAC,GAAG,CAAC,sBAAsB,IAAI,CAAC,SAAS,CAAC,KAAK,EAAE,IAAI,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC;IAEpE,IAAI,CAAC,MAAM,EAAE,CAAC;QACV,OAAO,CAAC,GAAG,CAAC,qBAAqB,CAAC,CAAC;QACnC,MAAM,MAAM,GAAG,MAAM,UAAU,CAAC,QAAQ,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC;QACxD,OAAO,CAAC,GAAG,CAAC,mBAAmB;YAC3B,gBAAgB,UAAU,CAAC,aAAa,CAAC,WAAW,OAAO,MAAM,CAAC,oBAAoB,CAAC,eAAe,IAAI,CAAC,CAAC;IACpH,CAAC;SAAM,CAAC;QACJ,OAAO,CAAC,GAAG,CAAC,6CAA6C,CAAC,CAAC;IAC/D,CAAC;AACL,CAAC,CAAC"}
|
|
@@ -0,0 +1,46 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
3
|
+
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
4
|
+
};
|
|
5
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
|
+
exports.Connection = void 0;
|
|
7
|
+
const dotenv_1 = __importDefault(require("dotenv"));
|
|
8
|
+
dotenv_1.default.config();
|
|
9
|
+
const config_1 = require("../config");
|
|
10
|
+
const ethers_1 = require("ethers");
|
|
11
|
+
const nautilus_1 = require("@deltadao/nautilus");
|
|
12
|
+
class Connection {
|
|
13
|
+
constructor(wallet, nautilus, networkConfig, pricingConfig) {
|
|
14
|
+
this.wallet = wallet;
|
|
15
|
+
this.nautilus = nautilus;
|
|
16
|
+
this.networkConfig = networkConfig;
|
|
17
|
+
this.pricingConfig = pricingConfig;
|
|
18
|
+
}
|
|
19
|
+
static async connect() {
|
|
20
|
+
if (!process.env.NETWORK) {
|
|
21
|
+
console.error(`Set your network in the .env file. Supported networks are ` +
|
|
22
|
+
`${Object.values(config_1.Network).join(', ')}.`);
|
|
23
|
+
process.exit(1);
|
|
24
|
+
}
|
|
25
|
+
const selectedEnvNetwork = process.env.NETWORK.toUpperCase();
|
|
26
|
+
if (!(selectedEnvNetwork in config_1.Network)) {
|
|
27
|
+
console.error(`Invalid network selection: ${selectedEnvNetwork}. Supported networks are ${Object.values(config_1.Network).join(', ')}.`);
|
|
28
|
+
process.exit(1);
|
|
29
|
+
}
|
|
30
|
+
console.log(`Your selected network is ${config_1.Network[selectedEnvNetwork]}`);
|
|
31
|
+
const networkConfig = config_1.NETWORK_CONFIGS[selectedEnvNetwork];
|
|
32
|
+
const pricingConfig = config_1.PRICING_CONFIGS[selectedEnvNetwork];
|
|
33
|
+
if (!process.env.PRIVATE_KEY) {
|
|
34
|
+
console.error(`Login to retrieve your private key using "pontusx-cli login keyFile.json"` +
|
|
35
|
+
` and do not forget to logout when finished.`);
|
|
36
|
+
process.exit(1);
|
|
37
|
+
}
|
|
38
|
+
const provider = new ethers_1.providers.JsonRpcProvider(networkConfig.nodeUri);
|
|
39
|
+
const wallet = new ethers_1.Wallet(process.env.PRIVATE_KEY, provider);
|
|
40
|
+
const nautilus = await nautilus_1.Nautilus.create(wallet, networkConfig);
|
|
41
|
+
console.log(`Connected as ${wallet.address}`);
|
|
42
|
+
return new Connection(wallet, nautilus, networkConfig, pricingConfig);
|
|
43
|
+
}
|
|
44
|
+
}
|
|
45
|
+
exports.Connection = Connection;
|
|
46
|
+
//# sourceMappingURL=connection.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"connection.js","sourceRoot":"","sources":["../../src/utils/connection.ts"],"names":[],"mappings":";;;;;;AAAA,oDAA4B;AAC5B,gBAAM,CAAC,MAAM,EAAE,CAAA;AACf,sCAAqH;AACrH,mCAA0C;AAC1C,iDAAwE;AAExE,MAAa,UAAU;IAEnB,YAA2B,MAAc,EACd,QAAkB,EAClB,aAA4B,EAC5B,aAA+D;QAH/D,WAAM,GAAN,MAAM,CAAQ;QACd,aAAQ,GAAR,QAAQ,CAAU;QAClB,kBAAa,GAAb,aAAa,CAAe;QAC5B,kBAAa,GAAb,aAAa,CAAkD;IAAG,CAAC;IAEvF,MAAM,CAAC,KAAK,CAAC,OAAO;QACvB,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,OAAO,EAAE,CAAC;YACvB,OAAO,CAAC,KAAK,CAAC,4DAA4D;gBACtE,GAAG,MAAM,CAAC,MAAM,CAAC,gBAAO,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;YAC7C,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;QACpB,CAAC;QACD,MAAM,kBAAkB,GAAG,OAAO,CAAC,GAAG,CAAC,OAAO,CAAC,WAAW,EAAE,CAAA;QAC5D,IAAI,CAAC,CAAC,kBAAkB,IAAI,gBAAO,CAAC,EAAE,CAAC;YACnC,OAAO,CAAC,KAAK,CAAC,8BAA8B,kBAAkB,4BAA4B,MAAM,CAAC,MAAM,CAC/F,gBAAO,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;YAChC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;QACpB,CAAC;QACD,OAAO,CAAC,GAAG,CAAC,4BAA4B,gBAAO,CAAC,kBAA6B,CAAC,EAAE,CAAC,CAAA;QACjF,MAAM,aAAa,GAAG,wBAAe,CAAC,kBAA6B,CAAC,CAAA;QACpE,MAAM,aAAa,GAAG,wBAAe,CAAC,kBAA6B,CAAC,CAAA;QACpE,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,WAAW,EAAE,CAAC;YAC3B,OAAO,CAAC,KAAK,CAAC,2EAA2E;gBACrF,6CAA6C,CAAC,CAAC;YACnD,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;QACpB,CAAC;QACD,MAAM,QAAQ,GAAG,IAAI,kBAAS,CAAC,eAAe,CAAC,aAAa,CAAC,OAAO,CAAC,CAAC;QACtE,MAAM,MAAM,GAAG,IAAI,eAAM,CAAC,OAAO,CAAC,GAAG,CAAC,WAAW,EAAE,QAAQ,CAAC,CAAC;QAC7D,MAAM,QAAQ,GAAG,MAAM,mBAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,aAAa,CAAC,CAAC;QAC9D,OAAO,CAAC,GAAG,CAAC,gBAAgB,MAAM,CAAC,OAAO,EAAE,CAAC,CAAC;QAC9C,OAAO,IAAI,UAAU,CAAC,MAAM,EAAE,QAAQ,EAAE,aAAa,EAAE,aAAa,CAAC,CAAC;IAC1E,CAAC;CACJ;AAjCD,gCAiCC"}
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
|
3
|
+
if (k2 === undefined) k2 = k;
|
|
4
|
+
var desc = Object.getOwnPropertyDescriptor(m, k);
|
|
5
|
+
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
|
|
6
|
+
desc = { enumerable: true, get: function() { return m[k]; } };
|
|
7
|
+
}
|
|
8
|
+
Object.defineProperty(o, k2, desc);
|
|
9
|
+
}) : (function(o, m, k, k2) {
|
|
10
|
+
if (k2 === undefined) k2 = k;
|
|
11
|
+
o[k2] = m[k];
|
|
12
|
+
}));
|
|
13
|
+
var __exportStar = (this && this.__exportStar) || function(m, exports) {
|
|
14
|
+
for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
|
|
15
|
+
};
|
|
16
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
17
|
+
__exportStar(require("./connection"), exports);
|
|
18
|
+
__exportStar(require("./publish-script-runner"), exports);
|
|
19
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/utils/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAAA,+CAA4B;AAC5B,0DAAwC"}
|
|
@@ -0,0 +1,50 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
|
3
|
+
if (k2 === undefined) k2 = k;
|
|
4
|
+
var desc = Object.getOwnPropertyDescriptor(m, k);
|
|
5
|
+
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
|
|
6
|
+
desc = { enumerable: true, get: function() { return m[k]; } };
|
|
7
|
+
}
|
|
8
|
+
Object.defineProperty(o, k2, desc);
|
|
9
|
+
}) : (function(o, m, k, k2) {
|
|
10
|
+
if (k2 === undefined) k2 = k;
|
|
11
|
+
o[k2] = m[k];
|
|
12
|
+
}));
|
|
13
|
+
var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
|
|
14
|
+
Object.defineProperty(o, "default", { enumerable: true, value: v });
|
|
15
|
+
}) : function(o, v) {
|
|
16
|
+
o["default"] = v;
|
|
17
|
+
});
|
|
18
|
+
var __importStar = (this && this.__importStar) || function (mod) {
|
|
19
|
+
if (mod && mod.__esModule) return mod;
|
|
20
|
+
var result = {};
|
|
21
|
+
if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
|
|
22
|
+
__setModuleDefault(result, mod);
|
|
23
|
+
return result;
|
|
24
|
+
};
|
|
25
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
26
|
+
exports.invokeFunctionFromFile = invokeFunctionFromFile;
|
|
27
|
+
const fs = __importStar(require("fs"));
|
|
28
|
+
const vm = __importStar(require("vm"));
|
|
29
|
+
const ts = __importStar(require("typescript"));
|
|
30
|
+
async function invokeFunctionFromFile(filePath, functionName, ...args) {
|
|
31
|
+
// Read the TypeScript file content
|
|
32
|
+
const tsContent = fs.readFileSync(filePath, 'utf8');
|
|
33
|
+
// Transpile TypeScript to JavaScript
|
|
34
|
+
const jsContent = ts.transpileModule(tsContent, {
|
|
35
|
+
compilerOptions: { module: ts.ModuleKind.CommonJS }
|
|
36
|
+
}).outputText;
|
|
37
|
+
// Create a new context for the script
|
|
38
|
+
const script = new vm.Script(jsContent);
|
|
39
|
+
const context = vm.createContext({ require, console, module, exports });
|
|
40
|
+
// Run the script in the context
|
|
41
|
+
script.runInContext(context);
|
|
42
|
+
// Invoke the function by name
|
|
43
|
+
if (typeof context[functionName] === 'function') {
|
|
44
|
+
return context[functionName](...args);
|
|
45
|
+
}
|
|
46
|
+
else {
|
|
47
|
+
throw new Error(`Function ${functionName} not found in ${filePath}`);
|
|
48
|
+
}
|
|
49
|
+
}
|
|
50
|
+
//# sourceMappingURL=publish-script-runner.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"publish-script-runner.js","sourceRoot":"","sources":["../../src/utils/publish-script-runner.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;AAKA,wDAsBC;AA3BD,uCAAyB;AAEzB,uCAAyB;AACzB,+CAAiC;AAE1B,KAAK,UAAU,sBAAsB,CAAC,QAAgB,EAAE,YAAoB,EAAE,GAAG,IAAW;IAC/F,mCAAmC;IACnC,MAAM,SAAS,GAAG,EAAE,CAAC,YAAY,CAAC,QAAQ,EAAE,MAAM,CAAC,CAAC;IAEpD,qCAAqC;IACrC,MAAM,SAAS,GAAG,EAAE,CAAC,eAAe,CAAC,SAAS,EAAE;QAC5C,eAAe,EAAE,EAAE,MAAM,EAAE,EAAE,CAAC,UAAU,CAAC,QAAQ,EAAE;KACtD,CAAC,CAAC,UAAU,CAAC;IAEd,sCAAsC;IACtC,MAAM,MAAM,GAAG,IAAI,EAAE,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC;IACxC,MAAM,OAAO,GAAG,EAAE,CAAC,aAAa,CAAC,EAAE,OAAO,EAAE,OAAO,EAAE,MAAM,EAAE,OAAO,EAAE,CAAC,CAAC;IAExE,gCAAgC;IAChC,MAAM,CAAC,YAAY,CAAC,OAAO,CAAC,CAAC;IAE7B,8BAA8B;IAC9B,IAAI,OAAO,OAAO,CAAC,YAAY,CAAC,KAAK,UAAU,EAAE,CAAC;QAC9C,OAAO,OAAO,CAAC,YAAY,CAAC,CAAC,GAAG,IAAI,CAAC,CAAC;IAC1C,CAAC;SAAM,CAAC;QACJ,MAAM,IAAI,KAAK,CAAC,YAAY,YAAY,iBAAiB,QAAQ,EAAE,CAAC,CAAC;IACzE,CAAC;AACL,CAAC"}
|
package/package.json
ADDED
|
@@ -0,0 +1,52 @@
|
|
|
1
|
+
{
|
|
2
|
+
"name": "pontus-x_cli",
|
|
3
|
+
"version": "0.0.1",
|
|
4
|
+
"main": "dist/index.js",
|
|
5
|
+
"bin": {
|
|
6
|
+
"pontus-x_cli": "./dist/index.js"
|
|
7
|
+
},
|
|
8
|
+
"scripts": {
|
|
9
|
+
"start": "NODE_NO_WARNINGS=1 ts-node src/index.ts",
|
|
10
|
+
"generate-did-web": "ts-node --files src/gaia-x_compliance/generate-did-web",
|
|
11
|
+
"generate-participant-vcs": "ts-node src/gaia-x_compliance/generate-participant-vcs",
|
|
12
|
+
"build": "tsc && chmod +x ./dist/index.js",
|
|
13
|
+
"clean": "rm -rf ./dist/",
|
|
14
|
+
"rebuild": "npm run clean & npm run build"
|
|
15
|
+
},
|
|
16
|
+
"repository": {
|
|
17
|
+
"type": "git",
|
|
18
|
+
"url": "https://github.com/rhizomik/pontus-x_cli.git"
|
|
19
|
+
},
|
|
20
|
+
"keywords": ["data space", "cli", "pontus-x", "gaia-x"],
|
|
21
|
+
"author": "Roberto García <https://rhizomik.net/~roberto>",
|
|
22
|
+
"license": "Apache-2.0",
|
|
23
|
+
"bugs": {
|
|
24
|
+
"url": "https://github.com/rhizomik/pontus-x_cli/issues"
|
|
25
|
+
},
|
|
26
|
+
"homepage": "https://github.com/monatheoctocat/my_package",
|
|
27
|
+
"dependencies": {
|
|
28
|
+
"@deltadao/nautilus": "^1.0.2",
|
|
29
|
+
"@gaia-x/did-web-generator": "^1.0.1",
|
|
30
|
+
"@gaia-x/json-web-signature-2020": "^2.1.0",
|
|
31
|
+
"axios": "^1.7.4",
|
|
32
|
+
"commander": "^11.1.0",
|
|
33
|
+
"dotenv": "^16.3.1",
|
|
34
|
+
"ethereumjs-wallet": "^1.0.2",
|
|
35
|
+
"ethers": "^5.7.2",
|
|
36
|
+
"figlet": "^1.7.0",
|
|
37
|
+
"handlebars": "^4.7.8",
|
|
38
|
+
"readline-sync": "^1.4.10",
|
|
39
|
+
"ts-node": "^10.9.1"
|
|
40
|
+
},
|
|
41
|
+
"devDependencies": {
|
|
42
|
+
"@types/figlet": "^1.5.8",
|
|
43
|
+
"@types/node": "^22.2.0",
|
|
44
|
+
"@types/readline-sync": "^1.4.8",
|
|
45
|
+
"typescript": "^5.5.4"
|
|
46
|
+
},
|
|
47
|
+
"files": [
|
|
48
|
+
"dist",
|
|
49
|
+
"README.md",
|
|
50
|
+
"LICENSE"
|
|
51
|
+
]
|
|
52
|
+
}
|