Skip to content

Commit c95859a

Browse files
authored
P-1499 Separate the types of client api (#3444)
* feat: initialize typescript-api package with type definitions for identity, omni and sidechain modules * chore: remove client-api package and all related files * rename * fix name * refactor: standardize metadata file paths and update package dependencies * update pnpm-lock.yaml dependencies * update client-api paths and metadata file locations across test scripts * add pnpm generate step * fix: change moduleResolution from Bundler to node in tsconfig.base.json * update README * style: format code with prettier and standardize indentation * refactor: update import paths to use @heima-network/api-argument package * refactor: update imports to use @heima-network/api-argument package instead of parachain-api in omni-excutor tests * feat: extend CLI options and update metadata fetching in integration test script * feat: add option to skip sidechain build and simplify integration test script * feat: import trusted_operations types from identity module * update imports from identity to omni module across test utils * add identity and trusted_operations exports to omni
1 parent 9380baf commit c95859a

File tree

83 files changed

+4401
-2918
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

83 files changed

+4401
-2918
lines changed

tee-worker/client-api/.editorconfig

Lines changed: 0 additions & 6 deletions
This file was deleted.

tee-worker/client-api/.gitignore

Lines changed: 19 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,19 @@
1-
build
2-
dist
3-
parachain-api/prepare-build/litentry-parachain-metadata.json
4-
sidechain-api/prepare-build/litentry-sidechain-metadata.json
1+
# Build outputs
2+
/dist
3+
/build
4+
5+
# Generated files
6+
/src/*/build/
7+
/src/**/interfaces/**/*.ts
8+
!/src/**/interfaces/**/definitions.ts
9+
10+
# Node modules
11+
node_modules
12+
13+
# Metadata files
14+
metadata-*.json
15+
16+
# IDE and OS files
17+
.DS_Store
18+
.idea
19+
.vscode

tee-worker/client-api/.prettierrc

Lines changed: 0 additions & 6 deletions
This file was deleted.

tee-worker/client-api/README.md

Lines changed: 27 additions & 20 deletions
Original file line numberDiff line numberDiff line change
@@ -1,20 +1,24 @@
11
## Description
22

3-
Client-api of tee-worker
3+
Heima types augment for @polkadot/api
44

5-
## Purpose
5+
## Environment setup
66

7-
In order to enable the use of our parachain and sidechain types in client and other projects.
7+
- Install [nvm](https://github.com/nvm-sh/nvm)
88

9-
## Environment setup
9+
- Inside the repository, run
10+
11+
```
12+
nvm use
13+
```
1014

11-
- Install [nvm](https://github.com/nvm-sh/nvm)
12-
- Inside the repository, run `nvm use` to set the correct Node version.
13-
- If the version is not installed, run `nvm install`.
15+
to set the correct Node version.
16+
17+
- If the version is not installed, run `nvm install`.
1418

1519
## Installation
1620

17-
```cd tee-worker/ts-tests
21+
```
1822
cd tee-worker/client-api
1923
nvm use
2024
corepack enable pnpm
@@ -23,21 +27,24 @@ pnpm install
2327

2428
## Type Generated
2529

26-
Update parachain metadata: `pnpm --filter parachain-api run update-metadata` (requires the parachain is running)
27-
28-
Update sidechain metadata: `pnpm --filter sidechain-api run update-metadata` (requires the worker is running)
30+
Update metadata: `pnpm load:metadata` or `pnpm load:metadata:identity` for specific directory
2931

30-
Generate parachain type: `pnpm --filter parachain-api run build`
32+
Generate types:`pnpm generate`
3133

32-
Generate sidechain type: `pnpm --filter sidechain-api run build`
34+
## Usage
3335

34-
Alternatively, you can run `pnpm --run update-build` to do all things above in one go.
35-
36-
## Test
37-
38-
Once update the `client-api/parachain-api` or `client-api/sidechain-api`, all you need to do in the tee-worker/ts-tests is to re-install(run `pnpm install` in tee-worker/ts-tests) and then you can test directly.
36+
```
37+
pnpm run generate
38+
pnpm run build
39+
```
40+
- `import '@heima-network/api-augment/identity'` - applies Identity types and endpoint augmentation
41+
- `import '@heima-network/api-augment/omni'` - applies Omni types and endpoint augmentation
42+
- `import '@heima-network/api-augment/sidechain'` - applies Sidechain types and endpoint augmentation
3943

4044
## Publish
4145

42-
1. [parachain-api](https://github.com/litentry/heima/blob/dev/tee-worker/identity/client-api/parachain-api/README.md#publish-new-versions)
43-
2. [sidechain-api](https://github.com/litentry/heima/blob/dev/tee-worker/identity/client-api/sidechain-api/README.md#publish-new-versions)
46+
```
47+
pnpm run generate
48+
pnpm run build
49+
pnpm run publish
50+
```

tee-worker/client-api/package.json

Lines changed: 93 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -1,17 +1,103 @@
11
{
2+
"name": "@heima-network/api-augment",
23
"type": "module",
4+
"description": "Heima types augment for @polkadot/api",
35
"license": "ISC",
6+
"author": "Heima dev",
7+
"main": "./dist/identity/index.cjs",
8+
"module": "./dist/identity/index.js",
9+
"types": "./dist/identity/index.d.ts",
10+
"version": "0.0.1",
11+
"files": [
12+
"dist",
13+
"src",
14+
"README.md"
15+
],
16+
"exports": {
17+
".": {
18+
"types": "./dist/identity/index.d.ts",
19+
"require": "./dist/identity/index.cjs",
20+
"import": "./dist/identity/index.js"
21+
},
22+
"./identity": {
23+
"types": "./dist/identity/index.d.ts",
24+
"require": "./dist/identity/index.cjs",
25+
"import": "./dist/identity/index.js"
26+
},
27+
"./omni": {
28+
"types": "./dist/omni/index.d.ts",
29+
"require": "./dist/omni/index.cjs",
30+
"import": "./dist/omni/index.js"
31+
},
32+
"./sidechain": {
33+
"types": "./dist/sidechain/index.d.ts",
34+
"require": "./dist/sidechain/index.cjs",
35+
"import": "./dist/sidechain/index.js"
36+
}
37+
},
38+
"typesVersions": {
39+
"*": {
40+
"identity": [
41+
"./dist/identity/index.d.ts"
42+
],
43+
"omni": [
44+
"./dist/omni/index.d.ts"
45+
],
46+
"sidechain": [
47+
"./dist/sidechain/index.d.ts"
48+
]
49+
}
50+
},
451
"engines": {
552
"node": ">=20.0.0"
653
},
754
"scripts": {
8-
"update": "pnpm --filter parachain-api run update-metadata && pnpm --filter sidechain-api run update-metadata",
9-
"build": "pnpm --filter parachain-api run build && pnpm --filter sidechain-api run build",
10-
"build-parachain-api": "pnpm --filter parachain-api run build",
11-
"update-build": "pnpm run update && pnpm run build",
12-
"format": "pnpm run --recursive format",
13-
"check-format": "pnpm run --recursive check-format",
14-
"clean": "pnpm --filter parachain-api run clean && pnpm --filter sidechain-api run clean"
55+
"clean": "rm -rf dist node_modules",
56+
"generate": "pnpm generate:defs && pnpm generate:meta",
57+
"load:metadata": "pnpm load:meta:identity && pnpm load:meta:identity && pnpm load:sidechain",
58+
"load:metadata:identity": "curl -s -H \"Content-Type: application/json\" -d '{\"id\":\"1\", \"jsonrpc\":\"2.0\", \"method\": \"state_getMetadata\", \"params\":[]}' http://localhost:9944 > metadata-parachain.json",
59+
"load:metadata:omni": "curl -s -H \"Content-Type: application/json\" -d '{\"id\":\"1\", \"jsonrpc\":\"2.0\", \"method\": \"state_getMetadata\", \"params\":[]}' http://localhost:9944 > metadata-parachain.json",
60+
"load:metadata:sidechain": "../../identity/bin/litentry-cli print-sgx-metadata-raw > metadata-sidechain.json",
61+
"generate:defs": "pnpm run generate:defs:identity && pnpm generate:defs:omni && pnpm generate:defs:sidechain",
62+
"generate:defs:identity": "pnpm tsx node_modules/@polkadot/typegen/scripts/polkadot-types-from-defs.mjs --package @heima-network/api-augment/identity/interfaces --input ./src/identity/interfaces --endpoint ./metadata-parachain.json",
63+
"generate:defs:omni": "pnpm tsx node_modules/@polkadot/typegen/scripts/polkadot-types-from-defs.mjs --package @heima-network/api-augment/omni/interfaces --input ./src/omni/interfaces --endpoint ./metadata-parachain.json",
64+
"generate:defs:sidechain": "pnpm tsx node_modules/@polkadot/typegen/scripts/polkadot-types-from-defs.mjs --package @heima-network/api-augment/sidechain/interfaces --input ./src/sidechain/interfaces --endpoint ./metadata-sidechain.json",
65+
"generate:meta": "pnpm run generate:meta:identity && pnpm generate:meta:omni && pnpm generate:meta:sidechain",
66+
"generate:meta:identity": "pnpm tsx node_modules/@polkadot/typegen/scripts/polkadot-types-from-chain.mjs --endpoint ./metadata-parachain.json --package @heima-network/api-augment/identity/interfaces --output ./src/identity/interfaces",
67+
"generate:meta:omni": "pnpm tsx node_modules/@polkadot/typegen/scripts/polkadot-types-from-chain.mjs --endpoint ./metadata-parachain.json --package @heima-network/api-augment/omni/interfaces --output ./src/omni/interfaces",
68+
"generate:meta:sidechain": "pnpm tsx node_modules/@polkadot/typegen/scripts/polkadot-types-from-chain.mjs --endpoint ./metadata-sidechain.json --package @heima-network/api-augment/sidechain/interfaces --output ./src/sidechain/interfaces",
69+
"build": "pnpm generate && tsup",
70+
"publish": "pnpm generate && pnpm build && pnpm publish",
71+
"format": "pnpm exec prettier --write .",
72+
"check-format": "pnpm exec prettier --check .",
73+
"lint": "tsc --noEmit --pretty",
74+
"build-skip-sidechain": "pnpm generate:defs:identity && pnpm generate:defs:omni && pnpm generate:meta:identity && pnpm generate:meta:omni && SKIP_SIDECHAIN=true tsup"
75+
},
76+
"dependencies": {
77+
"@polkadot/api": "*",
78+
"@polkadot/api-augment": "*",
79+
"@polkadot/api-base": "*",
80+
"@polkadot/api-derive": "*",
81+
"@polkadot/keyring": "^13.4.3",
82+
"@polkadot/rpc-core": "*",
83+
"@polkadot/types": "*",
84+
"@polkadot/types-augment": "*",
85+
"@polkadot/types-codec": "*",
86+
"@polkadot/types-create": "*",
87+
"@polkadot/types-known": "*",
88+
"@polkadot/types-support": "*",
89+
"@polkadot/typegen": "*",
90+
"@types/node": "^20.4.4",
91+
"prettier": "^2.8.3",
92+
"ts-node": "^10.9.1",
93+
"typescript": "^5.1.0",
94+
"tsx": "^4.19.3",
95+
"@polkadot/util": "^13.4.3",
96+
"@polkadot/util-crypto": "^13.4.3",
97+
"tsup": "^8.4.0"
98+
},
99+
"publishConfig": {
100+
"access": "public"
15101
},
16102
"packageManager": "pnpm@9.15.2"
17103
}

tee-worker/client-api/parachain-api/.gitignore

Lines changed: 0 additions & 1 deletion
This file was deleted.

tee-worker/client-api/parachain-api/CHANGELOG.md

Lines changed: 0 additions & 108 deletions
This file was deleted.

0 commit comments

Comments
 (0)