Skip to content

Commit 3600254

Browse files
authored
Merge pull request #11 from codescalers/main_signer_workflows_tfchain
Tchain Client against devnet
2 parents 6ddf370 + 6294c22 commit 3600254

File tree

262 files changed

+66542
-68
lines changed

Some content is hidden

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

262 files changed

+66542
-68
lines changed

.github/workflows/coverage.yaml

Lines changed: 18 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -6,7 +6,7 @@ on:
66
- main
77
push:
88
branches:
9-
- main
9+
- main
1010

1111
jobs:
1212
build:
@@ -34,26 +34,34 @@ jobs:
3434
- name: Install dependencies
3535
run: melos bootstrap
3636

37-
- name: Run unit tests
38-
run: melos run unit_test
39-
40-
- name: Create coverage directory
41-
run: mkdir -p coverage
37+
- name: Start TFChain Docker Container
38+
run: |
39+
sudo docker run -d --network host ghcr.io/threefoldtech/tfchain --dev --rpc-cors all --rpc-external --rpc-methods=safe
40+
41+
- name: Wait for TFChain to be ready
42+
run: |
43+
while ! nc -z localhost 9944; do
44+
echo "Waiting for TFChain to be ready..."
45+
sleep 5
46+
done
4247
43-
- name: Run unit tests
48+
- name: Run unit tests and generate coverage
4449
run: |
4550
melos exec rm -rf coverage
4651
melos run unit_test
4752
53+
- name: Create coverage directory
54+
run: mkdir -p coverage
55+
4856
- name: Calculate and merge coverage
4957
if: success()
5058
run: |
5159
melos exec --dir-exists="coverage" -- bash -c 'dart pub global run coverde filter --input coverage/lcov.info --output coverage/filtered.lcov.info --filters .g.dart'
5260
melos exec --dir-exists="coverage" -- bash -c 'dart pub global run coverde value -i coverage/filtered.lcov.info > coverage/result.txt'
53-
61+
5462
- name: Upload coverage to Codecov
55-
if: success()
63+
if: success()
5664
uses: codecov/codecov-action@v3
5765
with:
5866
token: ${{ secrets.CODECOV_TOKEN }}
59-
files: coverage/filtered.lcov.info
67+
files: coverage/filtered.lcov.info

.gitignore

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -4,6 +4,6 @@ coverage/
44
/packages/*/.dart_tool
55
/packages/*/build
66
/packages/*/idea
7-
7+
.vscode/
88
*.iml
99
.idea

README.md

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -2,6 +2,11 @@
22

33
[![melos](https://img.shields.io/badge/maintained%20with-melos-f700ff.svg?style=flat-square)](https://github.com/invertase/melos) [![codecov](https://codecov.io/gh/codescalers/tfgrid-sdk-dart/graph/badge.svg?token=O34UDTMW5O)](https://codecov.io/gh/codescalers/tfgrid-sdk-dart)
44

5+
This repo contains the dart clients for Threefold grid.
6+
## Packages
7+
8+
- [signer](./packages/signer/README.md)
9+
- [tfchain_client](./packages/tfchain_client/README.md)
510
## Prerequisites
611

712
Make sure you have the following tools installed:
@@ -10,6 +15,7 @@ Make sure you have the following tools installed:
1015
- [Melos](https://pub.dev/packages/melos)
1116
- [Coverde](https://pub.dev/packages/coverde)
1217

18+
1319
## Initialize Workspace
1420

1521
To initialize workspace in all packages run the following command

analysis_options.yaml

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,7 @@
1+
analyzer:
2+
errors:
3+
unused_local_variable: ignore
4+
exclude:
5+
- packages/tfchain_client/lib/generated/**
6+
- packages/tfchain_client/pubspec.yaml
7+
- pubspec.yaml

packages/signer/README.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -65,7 +65,7 @@ dart pub get
6565
To run the tests, run the following command
6666

6767
```bash
68-
dart test
68+
dart test .
6969
```
7070

7171
## Generate Coverage

packages/signer/bin/signer.dart

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -49,14 +49,14 @@ void main() async {
4949
]);
5050

5151
final signer2 = Signer();
52-
await signer2.fromSeed(seedUint8List, KPType.ed25519);
52+
signer2.fromSeed(seedUint8List, KPType.ed25519);
5353
final signatureFromSeed = signer2.sign(data);
5454
print("Signature from Seed: $signatureFromSeed");
5555

5656
final signer3 = Signer();
5757
signer3.fromHexSeed(
5858
'0x6c1d94caa7bf0a0d7ef0983c1823e9ac6abed57221d57d0922654352d85cb1e4',
5959
KPType.ed25519);
60-
final signatureFromSeed2 = await signer3.sign(data);
60+
final signatureFromSeed2 = signer3.sign(data);
6161
print("Signature from Hex Seed: $signatureFromSeed2");
6262
}

packages/signer/lib/src/sign.dart

Lines changed: 16 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,5 @@
11
part of '../signer.dart';
2+
// TODO: should return keypair or not ?
23

34
class Signer {
45
KeyPair? keypair;
@@ -29,15 +30,29 @@ class Signer {
2930
}
3031
}
3132

32-
void fromHexSeed(String hexSeed, KPType type) {
33+
KeyPair? fromHexSeed(String hexSeed, KPType type) {
3334
try {
3435
final seed = HEX.decode(hexSeed.replaceAll('0x', ''));
3536
keypair = fromSeed(Uint8List.fromList(seed), type);
37+
return keypair;
3638
} catch (e) {
3739
throw Exception("Failed to create keyPair from hex seed. Error: $e");
3840
}
3941
}
4042

43+
Future<KeyPair?> fromUri(String uri, KPType type) async {
44+
try {
45+
if (type == KPType.sr25519) {
46+
keypair = await KeyPair.sr25519.fromUri(uri);
47+
} else if (type == KPType.ed25519) {
48+
keypair = await KeyPair.ed25519.fromUri(uri);
49+
}
50+
return keypair;
51+
} catch (e) {
52+
throw Exception("Failed to create keyPair from mnemonic. Error: $e");
53+
}
54+
}
55+
4156
String sign(String data) {
4257
if (keypair == null) {
4358
throw Exception("keypair not initialized.");

packages/signer/pubspec.lock

Lines changed: 39 additions & 31 deletions
Original file line numberDiff line numberDiff line change
@@ -5,10 +5,10 @@ packages:
55
dependency: transitive
66
description:
77
name: _fe_analyzer_shared
8-
sha256: "36a321c3d2cbe01cbcb3540a87b8843846e0206df3e691fa7b23e19e78de6d49"
8+
sha256: "0b2f2bd91ba804e53a61d757b986f89f1f9eaed5b11e4b2f5a2468d86d6c9fc7"
99
url: "https://pub.dev"
1010
source: hosted
11-
version: "65.0.0"
11+
version: "67.0.0"
1212
adaptive_number:
1313
dependency: transitive
1414
description:
@@ -21,18 +21,18 @@ packages:
2121
dependency: transitive
2222
description:
2323
name: analyzer
24-
sha256: dfe03b90ec022450e22513b5e5ca1f01c0c01de9c3fba2f7fd233cb57a6b9a07
24+
sha256: "37577842a27e4338429a1cbc32679d508836510b056f1eedf0c8d20e39c1383d"
2525
url: "https://pub.dev"
2626
source: hosted
27-
version: "6.3.0"
27+
version: "6.4.1"
2828
args:
2929
dependency: transitive
3030
description:
3131
name: args
32-
sha256: eef6c46b622e0494a36c5a12d10d77fb4e855501a91c1b9ef9339326e58f0596
32+
sha256: "7cf60b9f0cc88203c5a190b4cd62a99feea42759a7fa695010eb5de1c0b2252a"
3333
url: "https://pub.dev"
3434
source: hosted
35-
version: "2.4.2"
35+
version: "2.5.0"
3636
async:
3737
dependency: transitive
3838
description:
@@ -85,10 +85,10 @@ packages:
8585
dependency: "direct dev"
8686
description:
8787
name: coverage
88-
sha256: ac86d3abab0f165e4b8f561280ff4e066bceaac83c424dd19f1ae2c2fcd12ca9
88+
sha256: "8acabb8306b57a409bf4c83522065672ee13179297a6bb0cb9ead73948df7c76"
8989
url: "https://pub.dev"
9090
source: hosted
91-
version: "1.7.1"
91+
version: "1.7.2"
9292
crypto:
9393
dependency: transitive
9494
description:
@@ -133,10 +133,10 @@ packages:
133133
dependency: transitive
134134
description:
135135
name: ffi
136-
sha256: "7bf0adc28a23d395f19f3f1eb21dd7cfd1dd9f8e1c50051c069122e6853bc878"
136+
sha256: "493f37e7df1804778ff3a53bd691d8692ddf69702cf4c1c1096a2e41b4779e21"
137137
url: "https://pub.dev"
138138
source: hosted
139-
version: "2.1.0"
139+
version: "2.1.2"
140140
file:
141141
dependency: transitive
142142
description:
@@ -165,10 +165,10 @@ packages:
165165
dependency: transitive
166166
description:
167167
name: frontend_server_client
168-
sha256: "408e3ca148b31c20282ad6f37ebfa6f4bdc8fede5b74bc2f08d9d92b55db3612"
168+
sha256: f64a0333a82f30b0cca061bc3d143813a486dc086b574bfb233b7c1372427694
169169
url: "https://pub.dev"
170170
source: hosted
171-
version: "3.2.0"
171+
version: "4.0.0"
172172
glob:
173173
dependency: transitive
174174
description:
@@ -237,10 +237,10 @@ packages:
237237
dependency: transitive
238238
description:
239239
name: matcher
240-
sha256: "1803e76e6653768d64ed8ff2e1e67bea3ad4b923eb5c56a295c3e634bad5960e"
240+
sha256: d2323aa2060500f906aa31a895b4030b6da3ebdcc5619d14ce1aada65cd161cb
241241
url: "https://pub.dev"
242242
source: hosted
243-
version: "0.12.16"
243+
version: "0.12.16+1"
244244
merlin:
245245
dependency: transitive
246246
description:
@@ -253,18 +253,18 @@ packages:
253253
dependency: transitive
254254
description:
255255
name: meta
256-
sha256: d584fa6707a52763a52446f02cc621b077888fb63b93bbcb1143a7be5a0c0c04
256+
sha256: "25dfcaf170a0190f47ca6355bdd4552cb8924b430512ff0cafb8db9bd41fe33b"
257257
url: "https://pub.dev"
258258
source: hosted
259-
version: "1.11.0"
259+
version: "1.14.0"
260260
mime:
261261
dependency: transitive
262262
description:
263263
name: mime
264-
sha256: e4ff8e8564c03f255408decd16e7899da1733852a9110a58fe6d1b817684a63e
264+
sha256: "2e123074287cc9fd6c09de8336dae606d1ddb88d9ac47358826db698c176a1f2"
265265
url: "https://pub.dev"
266266
source: hosted
267-
version: "1.0.4"
267+
version: "1.0.5"
268268
node_preamble:
269269
dependency: transitive
270270
description:
@@ -285,10 +285,10 @@ packages:
285285
dependency: transitive
286286
description:
287287
name: path
288-
sha256: "8829d8a55c13fc0e37127c29fedf290c102f4e40ae94ada574091fe0ff96c917"
288+
sha256: "087ce49c3f0dc39180befefc60fdb4acd8f8620e5682fe2476afd0b3688bb4af"
289289
url: "https://pub.dev"
290290
source: hosted
291-
version: "1.8.3"
291+
version: "1.9.0"
292292
pointycastle:
293293
dependency: transitive
294294
description:
@@ -477,26 +477,26 @@ packages:
477477
dependency: "direct dev"
478478
description:
479479
name: test
480-
sha256: a1f7595805820fcc05e5c52e3a231aedd0b72972cb333e8c738a8b1239448b6f
480+
sha256: d87214d19fb311997d8128ec501a980f77cb240ac4e7e219accf452813ff473c
481481
url: "https://pub.dev"
482482
source: hosted
483-
version: "1.24.9"
483+
version: "1.25.3"
484484
test_api:
485485
dependency: transitive
486486
description:
487487
name: test_api
488-
sha256: "5c2f730018264d276c20e4f1503fd1308dfbbae39ec8ee63c5236311ac06954b"
488+
sha256: "2419f20b0c8677b2d67c8ac4d1ac7372d862dc6c460cdbb052b40155408cd794"
489489
url: "https://pub.dev"
490490
source: hosted
491-
version: "0.6.1"
491+
version: "0.7.1"
492492
test_core:
493493
dependency: transitive
494494
description:
495495
name: test_core
496-
sha256: a757b14fc47507060a162cc2530d9a4a2f92f5100a952c7443b5cad5ef5b106a
496+
sha256: "2236f70be1e5ab405c675e88c36935a87dad9e05a506b57dd5c0f617f5aebcb2"
497497
url: "https://pub.dev"
498498
source: hosted
499-
version: "0.5.9"
499+
version: "0.6.1"
500500
typed_data:
501501
dependency: transitive
502502
description:
@@ -517,10 +517,10 @@ packages:
517517
dependency: transitive
518518
description:
519519
name: vm_service
520-
sha256: b3d56ff4341b8f182b96aceb2fa20e3dcb336b9f867bc0eafc0de10f1048e957
520+
sha256: a75f83f14ad81d5fe4b3319710b90dec37da0e22612326b696c9e1b8f34bbf48
521521
url: "https://pub.dev"
522522
source: hosted
523-
version: "13.0.0"
523+
version: "14.2.0"
524524
watcher:
525525
dependency: transitive
526526
description:
@@ -529,14 +529,22 @@ packages:
529529
url: "https://pub.dev"
530530
source: hosted
531531
version: "1.1.0"
532+
web:
533+
dependency: transitive
534+
description:
535+
name: web
536+
sha256: "97da13628db363c635202ad97068d47c5b8aa555808e7a9411963c533b449b27"
537+
url: "https://pub.dev"
538+
source: hosted
539+
version: "0.5.1"
532540
web_socket_channel:
533541
dependency: transitive
534542
description:
535543
name: web_socket_channel
536-
sha256: d88238e5eac9a42bb43ca4e721edba3c08c6354d4a53063afaa568516217621b
544+
sha256: "58c6666b342a38816b2e7e50ed0f1e261959630becd4c879c4f26bfa14aa5a42"
537545
url: "https://pub.dev"
538546
source: hosted
539-
version: "2.4.0"
547+
version: "2.4.5"
540548
webkit_inspection_protocol:
541549
dependency: transitive
542550
description:
@@ -554,4 +562,4 @@ packages:
554562
source: hosted
555563
version: "3.1.2"
556564
sdks:
557-
dart: ">=3.2.0 <4.0.0"
565+
dart: ">=3.3.0 <4.0.0"

packages/signer/test/signer_test.dart

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,4 @@
11
import 'dart:typed_data';
2-
32
import 'package:signer/signer.dart';
43
import 'package:test/test.dart';
54

packages/tfchain_client/CHANGELOG.md

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,3 @@
1+
## 1.0.0
2+
3+
- Initial version.

packages/tfchain_client/Makefile

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,7 @@
1+
.PHONY: unit_test_and_coverage
2+
3+
coverage:
4+
@rm -rf coverage && \
5+
flutter test --no-pub --coverage && \
6+
dart pub global run coverde filter --input ./coverage/lcov.info --output ./coverage/filtered.lcov.info --filters .g.dart && \
7+
dart pub global run coverde value -i ./coverage/filtered.lcov.info > ./coverage/result.txt

0 commit comments

Comments
 (0)