Skip to content

Commit da0dcc7

Browse files
committed
Merge branch 'main' of https://github.com/codescalers/tfgrid-sdk-dart into main_signer_workflows
2 parents af270a4 + 5250c93 commit da0dcc7

23 files changed

+190
-615
lines changed

.dart_tool/package_config.json

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

.gitignore

Lines changed: 7 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,10 @@
1-
pubspec.lock
21
coverage/
32

4-
.dart_tool/
3+
.dart_tool
4+
/packages/*/.dart_tool
5+
/packages/*/build
6+
/packages/*/idea
7+
8+
coverage/
59
*.iml
6-
.idea/
10+
.idea

.idea/.name

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

.idea/modules.xml

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

.idea/runConfigurations/melos_bootstrap.xml

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

.idea/runConfigurations/melos_clean.xml

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

.idea/runConfigurations/melos_run_analyze.xml

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

packages/signer/.gitignore

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

packages/signer/bin/signer.dart

Lines changed: 7 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -7,9 +7,9 @@ void main() async {
77
final mnemonic =
88
'picnic flip cigar rival risk scatter slide aware trust garlic solution token';
99
final signer = Signer();
10-
await signer.fromMnemonic(mnemonic);
10+
await signer.fromMnemonic(mnemonic, KPType.ed25519);
1111
final data = "anydata123";
12-
final signatureFromMnemonic = await signer.sign(data);
12+
final signatureFromMnemonic = signer.sign(data);
1313

1414
print("Signature from mnemonic: $signatureFromMnemonic");
1515

@@ -49,14 +49,14 @@ void main() async {
4949
]);
5050

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

5656
final signer3 = Signer();
57-
await signer3.fromHexSeed(
58-
'0x6c1d94caa7bf0a0d7ef0983c1823e9ac6abed57221d57d0922654352d85cb1e4');
57+
signer3.fromHexSeed(
58+
'0x6c1d94caa7bf0a0d7ef0983c1823e9ac6abed57221d57d0922654352d85cb1e4',
59+
KPType.ed25519);
5960
final signatureFromSeed2 = await signer3.sign(data);
6061
print("Signature from Hex Seed: $signatureFromSeed2");
61-
6262
}

packages/signer/build/native_assets/linux/native_assets.yaml

Lines changed: 0 additions & 5 deletions
This file was deleted.
Binary file not shown.

packages/signer/build/unit_test_assets/AssetManifest.json

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

packages/signer/build/unit_test_assets/FontManifest.json

Lines changed: 0 additions & 1 deletion
This file was deleted.
-19.7 KB
Binary file not shown.
Binary file not shown.

packages/signer/lib/signer.dart

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -5,6 +5,5 @@ import 'dart:typed_data';
55
import 'package:polkadart_keyring/polkadart_keyring.dart';
66
import 'package:hex/hex.dart';
77

8-
9-
108
part 'src/sign.dart';
9+
part 'src/types.dart';

packages/signer/lib/src/sign.dart

Lines changed: 25 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -1,53 +1,64 @@
11
part of '../signer.dart';
22

33
class Signer {
4-
KeyPair? _keypair;
4+
KeyPair? keypair;
55

6-
Future<void> fromMnemonic(String mnemonic) async {
6+
Future<KeyPair?> fromMnemonic(String mnemonic, KPType type) async {
77
try {
8-
_keypair = await KeyPair.fromMnemonic(mnemonic);
8+
if (type == KPType.sr25519) {
9+
keypair = await KeyPair.sr25519.fromMnemonic(mnemonic);
10+
} else if (type == KPType.ed25519) {
11+
keypair = await KeyPair.ed25519.fromMnemonic(mnemonic);
12+
}
13+
return keypair;
914
} catch (e) {
1015
throw Exception("Failed to create keyPair from mnemonic. Error: $e");
1116
}
1217
}
1318

14-
Future<void> fromSeed(Uint8List seed) async {
19+
KeyPair? fromSeed(Uint8List seed, KPType type) {
1520
try {
16-
_keypair = KeyPair.fromSeed(seed);
21+
if (type == KPType.sr25519) {
22+
keypair = KeyPair.sr25519.fromSeed(seed);
23+
} else if (type == KPType.ed25519) {
24+
keypair = KeyPair.ed25519.fromSeed(seed);
25+
}
26+
return keypair;
1727
} catch (e) {
1828
throw Exception("Failed to create keyPair from seed. Error: $e");
1929
}
2030
}
2131

22-
Future<void> fromHexSeed(String hexSeed) async {
32+
void fromHexSeed(String hexSeed, KPType type) {
2333
try {
2434
final seed = HEX.decode(hexSeed.replaceAll('0x', ''));
25-
_keypair = KeyPair.fromSeed(Uint8List.fromList(seed));
35+
keypair = fromSeed(Uint8List.fromList(seed), type);
2636
} catch (e) {
2737
throw Exception("Failed to create keyPair from hex seed. Error: $e");
2838
}
2939
}
3040

31-
Future<Uint8List> sign(String data) async {
32-
if (_keypair == null) {
41+
String sign(String data) {
42+
if (keypair == null) {
3343
throw Exception("keypair not initialized.");
3444
}
3545
try {
3646
final dataBytes = Uint8List.fromList(utf8.encode(data));
37-
final signature = _keypair!.sign(dataBytes);
38-
return signature;
47+
final signature = keypair!.sign(dataBytes);
48+
return HEX.encode(signature);
3949
} catch (e) {
4050
throw Exception("Failed to sign data. Error: $e");
4151
}
4252
}
4353

44-
Future<bool> verify(Uint8List signature, String data) async {
45-
if (_keypair == null) {
54+
bool verify(String signature, String data) {
55+
if (keypair == null) {
4656
throw Exception("keypair not initialized.");
4757
}
4858
try {
4959
final dataBytes = Uint8List.fromList(utf8.encode(data));
50-
return _keypair!.verify(dataBytes, signature);
60+
final signatureBytes = HEX.decode(signature);
61+
return keypair!.verify(dataBytes, Uint8List.fromList(signatureBytes));
5162
} catch (e) {
5263
throw Exception("Failed to verify signature. Error: $e");
5364
}

packages/signer/lib/src/types.dart

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,6 @@
1+
part of '../signer.dart';
2+
3+
enum KPType {
4+
sr25519,
5+
ed25519,
6+
}

packages/signer/pubspec.lock

Lines changed: 56 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -113,6 +113,14 @@ packages:
113113
url: "https://pub.dev"
114114
source: hosted
115115
version: "0.3.1"
116+
edwards25519:
117+
dependency: transitive
118+
description:
119+
name: edwards25519
120+
sha256: "48e4678136e362bed9790dfb716ebe8e2f34f026bdb900b058214620672c6273"
121+
url: "https://pub.dev"
122+
source: hosted
123+
version: "1.0.4"
116124
equatable:
117125
dependency: transitive
118126
description:
@@ -233,6 +241,14 @@ packages:
233241
url: "https://pub.dev"
234242
source: hosted
235243
version: "0.12.16"
244+
merlin:
245+
dependency: transitive
246+
description:
247+
name: merlin
248+
sha256: c6b5d5bc70880aa7639686db66480d0be4b89da843b5cab20550610507da2540
249+
url: "https://pub.dev"
250+
source: hosted
251+
version: "1.0.3"
236252
meta:
237253
dependency: transitive
238254
description:
@@ -277,26 +293,26 @@ packages:
277293
dependency: transitive
278294
description:
279295
name: pointycastle
280-
sha256: "7c1e5f0d23c9016c5bbd8b1473d0d3fb3fc851b876046039509e18e0c7485f2c"
296+
sha256: "4be0097fcf3fd3e8449e53730c631200ebc7b88016acecab2b0da2f0149222fe"
281297
url: "https://pub.dev"
282298
source: hosted
283-
version: "3.7.3"
299+
version: "3.9.1"
284300
polkadart_keyring:
285301
dependency: "direct main"
286302
description:
287303
name: polkadart_keyring
288-
sha256: ba568c22f3ff2a77c35fe0d53845212c1a433f99645e286550d1889dbb437d3c
304+
sha256: "10cdd75e3319169ca7a4bb49745d85fab3f56bba2eafda35655c4f278a4c5e07"
289305
url: "https://pub.dev"
290306
source: hosted
291-
version: "0.2.1"
307+
version: "0.4.3"
292308
polkadart_scale_codec:
293309
dependency: transitive
294310
description:
295311
name: polkadart_scale_codec
296-
sha256: "75289b2f53c6cf997dd68945d959fee596c1e47bba3dedba22a6e95646df893c"
312+
sha256: fab60c739f6ebcc812796e56378656dca57179cec46e92c23614db6fd9ed0f86
297313
url: "https://pub.dev"
298314
source: hosted
299-
version: "1.1.2"
315+
version: "1.2.0"
300316
pool:
301317
dependency: transitive
302318
description:
@@ -321,6 +337,22 @@ packages:
321337
url: "https://pub.dev"
322338
source: hosted
323339
version: "3.2.1"
340+
ristretto255:
341+
dependency: transitive
342+
description:
343+
name: ristretto255
344+
sha256: "3824d6786146dfb3b0783f305b714d36fa213c0d08e0ba864267baa0ede51cdd"
345+
url: "https://pub.dev"
346+
source: hosted
347+
version: "1.0.2"
348+
secp256k1_ecdsa:
349+
dependency: transitive
350+
description:
351+
name: secp256k1_ecdsa
352+
sha256: "87008b4fd164d861b94b0edf2e01ffadd6f06769e1f0382e19bb091daecc0576"
353+
url: "https://pub.dev"
354+
source: hosted
355+
version: "0.4.0"
324356
shelf:
325357
dependency: transitive
326358
description:
@@ -377,6 +409,14 @@ packages:
377409
url: "https://pub.dev"
378410
source: hosted
379411
version: "1.10.0"
412+
sr25519:
413+
dependency: transitive
414+
description:
415+
name: sr25519
416+
sha256: "266f7b2a4dd2d6a41a49924d41e80665f3b8340c157deff172f2b0cf64657a27"
417+
url: "https://pub.dev"
418+
source: hosted
419+
version: "0.4.0"
380420
ss58:
381421
dependency: transitive
382422
description:
@@ -409,14 +449,22 @@ packages:
409449
url: "https://pub.dev"
410450
source: hosted
411451
version: "1.2.0"
452+
strobe:
453+
dependency: transitive
454+
description:
455+
name: strobe
456+
sha256: a23adf7d305e45c6f210270aa925d8b404819144e29f7c5257a67281b63e0887
457+
url: "https://pub.dev"
458+
source: hosted
459+
version: "1.0.4"
412460
substrate_bip39:
413461
dependency: transitive
414462
description:
415463
name: substrate_bip39
416-
sha256: "78b45e9959c3394ecc9b56d9bfb07e11f93db70d273eccd93e3e4d84b28f11c0"
464+
sha256: "29548105e939d1fb213aba96686eb5c5aae472249fa12b8dda58b252d23f492c"
417465
url: "https://pub.dev"
418466
source: hosted
419-
version: "0.2.0"
467+
version: "0.4.0"
420468
term_glyph:
421469
dependency: transitive
422470
description:

packages/signer/pubspec.yaml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -7,7 +7,7 @@ environment:
77

88
dependencies:
99
hex: ^0.2.0
10-
polkadart_keyring: ^0.2.1
10+
polkadart_keyring: ^0.4.3
1111

1212
dev_dependencies:
1313
lints: ^3.0.0

0 commit comments

Comments
 (0)