Compare commits
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
0b11d5b9c1 | ||
|
|
a1afff886b | ||
|
|
08785c3ae6 | ||
|
|
438fc8bd86 | ||
|
|
6531bf1e36 | ||
|
|
c066593d7a | ||
|
|
66f777ece9 | ||
|
|
3fe6be655d | ||
|
|
3810e392dd | ||
|
|
3dd4c8d6e5 | ||
|
|
7611ec8b01 | ||
|
|
82d8207f48 | ||
|
|
b2575437e4 | ||
|
|
1ee92c356a | ||
|
|
372e4cc59b | ||
|
|
f1eb7ee489 | ||
|
|
039b849713 | ||
|
|
8913c70205 | ||
|
|
352c2df232 | ||
|
|
2994c594fc | ||
|
|
29dba0a55f | ||
|
|
2d89b5b493 | ||
|
|
72bdf6cbae | ||
|
|
f7d2bf9d11 | ||
|
|
8275f3bc54 | ||
|
|
058786689e | ||
|
|
3d4b0018c0 | ||
|
|
fa593ef1fc | ||
|
|
179ca120fa | ||
|
|
984a4a1ae8 | ||
|
|
1ad77eb58c | ||
|
|
928eef865a | ||
|
|
16ea0d2ddb | ||
|
|
203321c83e | ||
|
|
f42721d545 | ||
|
|
9846e97d73 | ||
|
|
cc5ab430b5 | ||
|
|
33b8d410b4 | ||
|
|
d9c2ed85bf | ||
|
|
6602421cfe | ||
|
|
cf61061863 | ||
|
|
b47d83fd3c | ||
|
|
37e8d53a12 | ||
|
|
fc667b7b72 | ||
|
|
a020835039 | ||
|
|
9cf963170d | ||
|
|
291d609dba | ||
|
|
a6fa8cec17 | ||
|
|
c4b95c7b52 | ||
|
|
d5243f3527 | ||
|
|
d71e34188e | ||
|
|
3f0f443124 | ||
|
|
074879c7a7 | ||
|
|
516af6f81e | ||
|
|
4ee1446823 | ||
|
|
88850918b9 | ||
|
|
11ed1c4249 | ||
|
|
0be13f451d | ||
|
|
f7e431adf9 | ||
|
|
6efca949cc | ||
|
|
80ed10201f | ||
|
|
6763d1c062 | ||
|
|
2c1efaa7a0 | ||
|
|
d0fd445c06 | ||
|
|
f1c84da0b0 | ||
|
|
a5e68db05f | ||
|
|
60c0e81314 | ||
|
|
f72be29dbf | ||
|
|
f301a57122 | ||
|
|
9523e6b0d3 | ||
|
|
b17bfbaf34 | ||
|
|
669d8b1a84 | ||
|
|
b7815d43a5 | ||
|
|
7622c8b151 | ||
|
|
37bc63b130 | ||
|
|
43f9676341 | ||
|
|
1283be6c19 | ||
|
|
cdd6314a4f | ||
|
|
8d027717bb | ||
|
|
dec9bbff49 | ||
|
|
536eef02c5 | ||
|
|
3b51154d60 | ||
|
|
f5767e3def | ||
|
|
29057558ac | ||
|
|
e591a75988 | ||
|
|
2fdc1679f2 | ||
|
|
35f6a51a6b | ||
|
|
640bab086e | ||
|
|
5f9ffca721 | ||
|
|
2fd9d18910 | ||
|
|
7782eef6e3 | ||
|
|
0c477e15c4 | ||
|
|
f39820e9c0 | ||
|
|
35d1a8e57f | ||
|
|
83567b75c5 | ||
|
|
501d0fa249 | ||
|
|
014702ca16 | ||
|
|
b53d34b41f | ||
|
|
47d995b88d | ||
|
|
cedba4af0c | ||
|
|
df8d84467b | ||
|
|
c289a83b16 | ||
|
|
a869ba7793 | ||
|
|
4f4ce3549e | ||
|
|
ce55d5b7d8 | ||
|
|
10997a6d73 | ||
|
|
ebe30a2880 | ||
|
|
b4963cc6bd | ||
|
|
304f7ad124 | ||
|
|
9777bca5d4 | ||
|
|
4c379e85cc | ||
|
|
4ee83d3d29 | ||
|
|
40d6a388b2 | ||
|
|
31f4940ec6 | ||
|
|
1ac50696ca | ||
|
|
1ca5ff48a0 | ||
|
|
8253272901 | ||
|
|
82c38e9805 | ||
|
|
509834c491 | ||
|
|
d713a7a116 | ||
|
|
d24e14aa5e | ||
|
|
b1a4a87926 | ||
|
|
05e0d36a0e | ||
|
|
5599a8877c | ||
|
|
2d850c5ac4 | ||
|
|
82ba3fb9b1 | ||
|
|
0aae0e2bc2 | ||
|
|
2bcea83e0a | ||
|
|
20e126759e | ||
|
|
566127bcb6 | ||
|
|
b50ee462da | ||
|
|
a3cd2de56d | ||
|
|
7f60123417 | ||
|
|
bb124813dc | ||
|
|
652ede8ce7 | ||
|
|
52d2d38051 | ||
|
|
65f627c0dc | ||
|
|
9ecf29b83b | ||
|
|
97b84977b7 | ||
|
|
f9315c307f | ||
|
|
c08c947abf | ||
|
|
2d4509c32a | ||
|
|
c6e18b1a9e | ||
|
|
515a77781f | ||
|
|
55d2c149f7 | ||
|
|
43b959ad1f | ||
|
|
6708b34a01 | ||
|
|
a9a9214f3b | ||
|
|
8bd77c97a0 | ||
|
|
ed70e5c65f | ||
|
|
ca6f157007 | ||
|
|
6c30e328bb | ||
|
|
1f6f3c67a8 | ||
|
|
d19e2c8469 | ||
|
|
92f479e0e5 | ||
|
|
25f9444c53 | ||
|
|
6d46f8b24e | ||
|
|
0189cdabe9 | ||
|
|
9d61c2c96c | ||
|
|
6599b41155 | ||
|
|
9c05257046 | ||
|
|
41e2e67fd0 | ||
|
|
092fbdd923 | ||
|
|
c1cdc80169 | ||
|
|
306bbdea12 | ||
|
|
f41519e185 | ||
|
|
1a3fd344b5 | ||
|
|
f798c1dbd5 | ||
|
|
813d358999 | ||
|
|
e85eb35413 | ||
|
|
8a50cba394 | ||
|
|
20f030e987 | ||
|
|
4a683f41d3 | ||
|
|
ea7f59ab73 | ||
|
|
60498f7f36 | ||
|
|
9ad0c46417 | ||
|
|
0fc140f838 | ||
|
|
cd63bb695d | ||
|
|
7eac688074 | ||
|
|
820a5e4077 | ||
|
|
bc0f69aef0 | ||
|
|
5074adf690 | ||
|
|
8461d105d6 | ||
|
|
cd246e2381 | ||
|
|
8a499bf1bf | ||
|
|
5b2ec8e4d6 | ||
|
|
4a06d1382f | ||
|
|
66ac9e15a6 | ||
|
|
0e55357053 | ||
|
|
b4b80bbf67 | ||
|
|
4355b9b066 | ||
|
|
5c92e095ff | ||
|
|
4fedd594f1 | ||
|
|
6f05fa6634 | ||
|
|
856e93f4a0 | ||
|
|
195e42ec11 | ||
|
|
16e90aadfc | ||
|
|
bcdf5ba26e | ||
|
|
ae9a04e557 | ||
|
|
4b37a82fb3 | ||
|
|
1b69bb9dfa | ||
|
|
e8f703f850 | ||
|
|
3ad4455fe1 | ||
|
|
1f6a263a8e | ||
|
|
73073529bb | ||
|
|
e1bdac1ba5 | ||
|
|
56c619944c | ||
|
|
4c60b98b07 | ||
|
|
2f9f007547 | ||
|
|
d00184fff7 | ||
|
|
e1e3a1699f | ||
|
|
90a1837978 | ||
|
|
c96ad1a34e | ||
|
|
b1eda9efe9 | ||
|
|
2184ae8511 | ||
|
|
ce94314992 | ||
|
|
eea3596847 | ||
|
|
37e78f7abd | ||
|
|
4bb2c83213 | ||
|
|
3828d941a9 | ||
|
|
c92d5cfb20 | ||
|
|
70d2250b3b | ||
|
|
a46279876f | ||
|
|
4267c4ac76 | ||
|
|
e09dfcffbe | ||
|
|
b722291de2 | ||
|
|
4367bb0f68 | ||
|
|
1d71f67e2a | ||
|
|
2d4995b16e | ||
|
|
b96cfd36cf | ||
|
|
9f53838626 | ||
|
|
478dd6ccd9 | ||
|
|
fd313c2e91 | ||
|
|
66b58ea5f2 | ||
|
|
66acbe04af | ||
|
|
2194cc58d7 | ||
|
|
768f64aec7 | ||
|
|
2176bedd50 | ||
|
|
8273eb5441 | ||
|
|
76af1b8822 | ||
|
|
80eb70a382 | ||
|
|
7e01b2b256 | ||
|
|
b30bed8707 | ||
|
|
d79813065f | ||
|
|
7e12949146 | ||
|
|
5ca6575245 | ||
|
|
4cadf3bcb7 | ||
|
|
81f8f16b98 | ||
|
|
8edfb1139f | ||
|
|
69d1d896d1 | ||
|
|
3bc62adf6f | ||
|
|
691a8e9b18 | ||
|
|
fc812590e5 | ||
|
|
05499abcd5 | ||
|
|
e375dd8a9d | ||
|
|
3269883e8f | ||
|
|
c99129ee06 | ||
|
|
2514e107bf | ||
|
|
3c34a0e1f2 | ||
|
|
f704e371c8 | ||
|
|
97e3443e74 | ||
|
|
a84e101666 | ||
|
|
a799918d58 | ||
|
|
429390fb62 | ||
|
|
05d0109b72 | ||
|
|
02b1429979 | ||
|
|
6e1853d01f | ||
|
|
aa9c406d01 | ||
|
|
f9ec44823d | ||
|
|
54218651f9 | ||
|
|
571c9eff6a | ||
|
|
5b7333b8dd | ||
|
|
938fa8b967 | ||
|
|
b99a69871e | ||
|
|
b1da8f575b | ||
|
|
a960aaf6ae | ||
|
|
f88c647ad0 | ||
|
|
7ff11925d9 | ||
|
|
cb5a588489 | ||
|
|
09019224e3 | ||
|
|
2d7031831a | ||
|
|
faf7ea2b17 | ||
|
|
af973de694 | ||
|
|
dfede866b2 | ||
|
|
0f0b243815 | ||
|
|
29f53fe906 | ||
|
|
225c250634 | ||
|
|
c871e9d735 | ||
|
|
b42ead28e5 | ||
|
|
db0581c051 | ||
|
|
e7ac095ace | ||
|
|
a7d9fc48e9 | ||
|
|
3db2990ce7 | ||
|
|
4b7cda243b | ||
|
|
c4ceeb8382 | ||
|
|
540971d388 | ||
|
|
b4d65a1c49 | ||
|
|
4fd4660853 | ||
|
|
4b46c179b2 | ||
|
|
3c6d297ecd | ||
|
|
4a6e620acc | ||
|
|
50b494ee2e | ||
|
|
5b551ca976 | ||
|
|
5f2a0e25f9 | ||
|
|
4edb0f00b6 | ||
|
|
096c772d7d | ||
|
|
d771d4c243 | ||
|
|
e038c36719 | ||
|
|
19c8799986 | ||
|
|
e7f642e7fb | ||
|
|
90e05a7907 | ||
|
|
1ad961eb93 | ||
|
|
8549f1fe89 | ||
|
|
0be212bd49 | ||
|
|
2dd2f78f7e | ||
|
|
d5ce0ff4d1 | ||
|
|
4d887e889a | ||
|
|
1113d09315 | ||
|
|
b774b7804b | ||
|
|
6c1b0e7346 | ||
|
|
68ba664c4c | ||
|
|
c3c4ceab8b | ||
|
|
fff30601a0 | ||
|
|
cfb5d24a87 | ||
|
|
7ce4ed1504 | ||
|
|
5a00b146fc | ||
|
|
1a73a3407e | ||
|
|
0db66346a6 | ||
|
|
a07bfe1234 | ||
|
|
5feb233abc | ||
|
|
16951c6feb | ||
|
|
22aa8d7adb | ||
|
|
dfaf954f75 | ||
|
|
78911607e8 | ||
|
|
cdcc331e6e | ||
|
|
882b29eebd | ||
|
|
de5c9a1594 | ||
|
|
2fc26b5533 | ||
|
|
6d795ecc5d | ||
|
|
a0c3aa3059 | ||
|
|
e30bac1ed6 | ||
|
|
50a061eab3 | ||
|
|
f2064f059f | ||
|
|
768cd68146 | ||
|
|
0a5bfdca5e | ||
|
|
3ec2f6dcb2 | ||
|
|
0f2a3a142f | ||
|
|
6f5a706ec9 | ||
|
|
7e0f917c2b | ||
|
|
99731a6664 | ||
|
|
7765476a26 | ||
|
|
2cd9633afe | ||
|
|
72749d083f | ||
|
|
9ede85f99a | ||
|
|
d6a390beb4 | ||
|
|
a14bec79f8 | ||
|
|
c0de5ac3c8 | ||
|
|
8d7f810556 | ||
|
|
5c6526a6bd | ||
|
|
e9635ab75b | ||
|
|
e946243b6f | ||
|
|
ca6a4177b5 | ||
|
|
7817311f84 | ||
|
|
77659aae2a | ||
|
|
7cc619fbb0 | ||
|
|
887654049e | ||
|
|
d07b79f578 | ||
|
|
cefeb0bb51 | ||
|
|
1d675ec803 | ||
|
|
7596dfa65c | ||
|
|
508e997c64 | ||
|
|
89563ee05c | ||
|
|
8b72584d53 | ||
|
|
4ae62c114b | ||
|
|
823fb51d18 | ||
|
|
a840b815bd | ||
|
|
fbf973dc2a | ||
|
|
2698f6779f | ||
|
|
3b5de80c54 | ||
|
|
041f5a7c2b | ||
|
|
cb8f1130af | ||
|
|
f480df7504 | ||
|
|
51763d3bf9 | ||
|
|
d2b7e88060 | ||
|
|
b20df563ce | ||
|
|
5ada180d66 | ||
|
|
a4256de444 | ||
|
|
bce5553a4b | ||
|
|
670743cbcf | ||
|
|
ffed9ceb6d | ||
|
|
bbacb1b80a | ||
|
|
5ea38c9898 | ||
|
|
7177722a49 | ||
|
|
6083923604 | ||
|
|
7a3e1c23aa | ||
|
|
cab50dbf7a | ||
|
|
9964b308ce | ||
|
|
247a0e7227 | ||
|
|
f2dba8aff8 | ||
|
|
2ef18335e3 | ||
|
|
fa0818d088 | ||
|
|
2106626f22 | ||
|
|
fceab0becc | ||
|
|
bdf42368f7 | ||
|
|
36ab5ea5e2 | ||
|
|
c5c8469038 | ||
|
|
83d0121a28 | ||
|
|
aff74ebde3 | ||
|
|
be4619ba3d | ||
|
|
17bc2e9fa0 | ||
|
|
66e2382f26 | ||
|
|
6c299f81c6 | ||
|
|
a4fcba6ff6 | ||
|
|
1a3507366e | ||
|
|
65939dbe9d | ||
|
|
6914411232 | ||
|
|
c79f46aaa2 | ||
|
|
cea09b2c8b | ||
|
|
bc23ed9fc9 | ||
|
|
a4f286e89a | ||
|
|
f112f9eb5e | ||
|
|
010552ca44 | ||
|
|
9ae4b1066e | ||
|
|
1a57abde6e | ||
|
|
cf4b44940e | ||
|
|
81e19aace4 | ||
|
|
7341c32df5 | ||
|
|
bb1ed6cfcd | ||
|
|
55dcfb5e18 | ||
|
|
2fe9e5a125 | ||
|
|
e24385213d | ||
|
|
9cd81a23e7 | ||
|
|
64348860cb | ||
|
|
ecfceb5d0a | ||
|
|
cc840c37a2 | ||
|
|
527af12b0f | ||
|
|
9f2b98d5a8 | ||
|
|
4bd767fb62 | ||
|
|
cff29dfd2d | ||
|
|
d26b80905c | ||
|
|
4249679882 | ||
|
|
ff27055808 | ||
|
|
54f8acb27f | ||
|
|
017bebe8bb | ||
|
|
89f5670d8b | ||
|
|
b9e2293bee | ||
|
|
3b45418e47 | ||
|
|
6af7f6ef24 | ||
|
|
a0b85ee7f8 | ||
|
|
2e0c6c3368 | ||
|
|
1d36284369 | ||
|
|
94788692bb | ||
|
|
1f3f5d5980 | ||
|
|
90c2638221 | ||
|
|
98e02a0baa | ||
|
|
e96a204bb5 | ||
|
|
0dc4ec48da | ||
|
|
5d5c7e4c0a | ||
|
|
76c973f5c5 | ||
|
|
7608f2eed9 | ||
|
|
e585aa1899 | ||
|
|
82152352ea | ||
|
|
515e1d62af | ||
|
|
2d2e6bc1bf | ||
|
|
5bb89db279 |
-30
@@ -1,30 +0,0 @@
|
|||||||
8
|
|
||||||
2.6.2
|
|
||||||
2.12.2
|
|
||||||
5.2.2
|
|
||||||
5.2.3
|
|
||||||
5.4.2
|
|
||||||
5.4.3
|
|
||||||
5.4.4
|
|
||||||
5.5.2
|
|
||||||
5.6.2
|
|
||||||
5.6.3
|
|
||||||
5.9.2
|
|
||||||
6.0.2
|
|
||||||
6.0.3
|
|
||||||
6.0.4
|
|
||||||
6.0.5
|
|
||||||
|
|
||||||
7.0.2
|
|
||||||
7.0.3
|
|
||||||
7.1.2
|
|
||||||
7.8.2
|
|
||||||
7.9.2
|
|
||||||
8.0.2
|
|
||||||
8.0.3
|
|
||||||
8.0.4
|
|
||||||
8.0.5
|
|
||||||
8.1.2
|
|
||||||
8.2.2
|
|
||||||
8.3.2
|
|
||||||
8.3.3
|
|
||||||
@@ -1,21 +0,0 @@
|
|||||||
checks:
|
|
||||||
argument-count:
|
|
||||||
config:
|
|
||||||
threshold: 5
|
|
||||||
method-complexity:
|
|
||||||
config:
|
|
||||||
threshold: 7
|
|
||||||
method-count:
|
|
||||||
config:
|
|
||||||
threshold: 25
|
|
||||||
method-lines:
|
|
||||||
config:
|
|
||||||
threshold: 30
|
|
||||||
|
|
||||||
exclude_patterns:
|
|
||||||
- "**/*.spec.js"
|
|
||||||
- "**/*.spec.ts"
|
|
||||||
- "packages/networks/src/substrate.ts"
|
|
||||||
- "packages/util/src/is/utf8.ts"
|
|
||||||
- "packages/x-noble-hashes/src/**.ts"
|
|
||||||
- "packages/x-noble-secp256k1/src/**.ts"
|
|
||||||
@@ -1,4 +1,4 @@
|
|||||||
// Copyright 2017-2022 @polkadot/util authors & contributors
|
// Copyright 2017-2023 @polkadot/util authors & contributors
|
||||||
// SPDX-License-Identifier: Apache-2.0
|
// SPDX-License-Identifier: Apache-2.0
|
||||||
|
|
||||||
const base = require('@polkadot/dev/config/eslint.cjs');
|
const base = require('@polkadot/dev/config/eslint.cjs');
|
||||||
@@ -0,0 +1,86 @@
|
|||||||
|
<!--
|
||||||
|
|
||||||
|
For general support, howto, coding and bundling questions, please
|
||||||
|
use the Substrate & Polkadot StackExchange at
|
||||||
|
|
||||||
|
https://substrate.stackexchange.com/
|
||||||
|
|
||||||
|
and get other ecosystem developers involved. This issues in this
|
||||||
|
repository are meant for the tracking of feature requests and bug
|
||||||
|
reports.
|
||||||
|
|
||||||
|
While all issues are looked at non-bug and non-features would take
|
||||||
|
quite a bit longer to get to and may yield less than satisfactory
|
||||||
|
responses in this format.
|
||||||
|
|
||||||
|
Additionally, please ensure you have done a search on the existing
|
||||||
|
and closed issues before logging a new request. This saves time on
|
||||||
|
all sides.
|
||||||
|
|
||||||
|
-->
|
||||||
|
|
||||||
|
|
||||||
|
* **I'm submitting a ...**
|
||||||
|
|
||||||
|
<!---
|
||||||
|
|
||||||
|
REQUIRED:
|
||||||
|
|
||||||
|
Classify the type of report your are submitting
|
||||||
|
|
||||||
|
-->
|
||||||
|
|
||||||
|
- [ ] Bug report
|
||||||
|
- [ ] Feature request
|
||||||
|
- [ ] Support request
|
||||||
|
- [ ] Other
|
||||||
|
|
||||||
|
|
||||||
|
* **What is the current behavior and expected behavior?**
|
||||||
|
|
||||||
|
<!---
|
||||||
|
|
||||||
|
REQUIRED:
|
||||||
|
|
||||||
|
If you're describing a bug, tell us what should happen. If you're
|
||||||
|
suggesting a change/improvement, tell us how it should work.
|
||||||
|
|
||||||
|
-->
|
||||||
|
|
||||||
|
|
||||||
|
* **What is the motivation for changing the behavior?**
|
||||||
|
|
||||||
|
<!---
|
||||||
|
|
||||||
|
OPTIONAL:
|
||||||
|
|
||||||
|
Suggest a motivation for the request or ideas how to implement the
|
||||||
|
addition or change
|
||||||
|
|
||||||
|
-->
|
||||||
|
|
||||||
|
|
||||||
|
* **Please tell us about your environment:**
|
||||||
|
|
||||||
|
<!---
|
||||||
|
|
||||||
|
REQUIRED:
|
||||||
|
|
||||||
|
Include as many relevant details about the environment in which you
|
||||||
|
experienced the issue. Also ensure that you have tested against the
|
||||||
|
latest stable releases if you believe this to be a bug
|
||||||
|
|
||||||
|
-->
|
||||||
|
|
||||||
|
- Version:
|
||||||
|
- Environment:
|
||||||
|
|
||||||
|
- [ ] Node.js
|
||||||
|
- [ ] Browser
|
||||||
|
- [ ] Other (limited support for other environments)
|
||||||
|
|
||||||
|
- Language:
|
||||||
|
|
||||||
|
- [ ] JavaScript
|
||||||
|
- [ ] TypeScript (include tsc --version)
|
||||||
|
- [ ] Other
|
||||||
@@ -9,7 +9,7 @@ jobs:
|
|||||||
if: "! startsWith(github.event.head_commit.message, '[CI Skip]') && (!github.event.pull_request || github.event.pull_request.head.repo.full_name == github.repository)"
|
if: "! startsWith(github.event.head_commit.message, '[CI Skip]') && (!github.event.pull_request || github.event.pull_request.head.repo.full_name == github.repository)"
|
||||||
runs-on: ubuntu-latest
|
runs-on: ubuntu-latest
|
||||||
steps:
|
steps:
|
||||||
- uses: jacogr/action-approve@master
|
- uses: jacogr/action-approve@9d6ce78d26f23ad29d009d034822cf773f2cb50e
|
||||||
with:
|
with:
|
||||||
authors: jacogr
|
authors: jacogr
|
||||||
labels: -auto
|
labels: -auto
|
||||||
|
|||||||
@@ -8,7 +8,7 @@ jobs:
|
|||||||
merge:
|
merge:
|
||||||
runs-on: ubuntu-latest
|
runs-on: ubuntu-latest
|
||||||
steps:
|
steps:
|
||||||
- uses: jacogr/action-merge@master
|
- uses: jacogr/action-merge@3b4b49af8a8644bf5cbb5409ee236abe04eeb1b0
|
||||||
with:
|
with:
|
||||||
checks: build,lint,test
|
checks: build,lint,test
|
||||||
labels: -auto
|
labels: -auto
|
||||||
|
|||||||
@@ -10,7 +10,7 @@ jobs:
|
|||||||
env:
|
env:
|
||||||
YARN_ENABLE_SCRIPTS: false
|
YARN_ENABLE_SCRIPTS: false
|
||||||
steps:
|
steps:
|
||||||
- uses: dessant/lock-threads@v2
|
- uses: dessant/lock-threads@f1a42f0f44eb83361d617a014663e1a76cf282d2
|
||||||
with:
|
with:
|
||||||
github-token: ${{ secrets.GH_PAT_BOT }}
|
github-token: ${{ secrets.GH_PAT_BOT }}
|
||||||
issue-lock-inactive-days: '7'
|
issue-lock-inactive-days: '7'
|
||||||
|
|||||||
@@ -5,15 +5,19 @@ jobs:
|
|||||||
pr:
|
pr:
|
||||||
strategy:
|
strategy:
|
||||||
matrix:
|
matrix:
|
||||||
step: ['lint', 'test', 'build']
|
step: ['lint', 'test', 'build', 'deno']
|
||||||
name: ${{ matrix.step }}
|
name: ${{ matrix.step }}
|
||||||
runs-on: ubuntu-latest
|
runs-on: ubuntu-latest
|
||||||
env:
|
env:
|
||||||
YARN_ENABLE_SCRIPTS: false
|
YARN_ENABLE_SCRIPTS: false
|
||||||
CC_TEST_REPORTER_ID: ${{ secrets.CC_TEST_REPORTER_ID }}
|
CC_TEST_REPORTER_ID: ${{ secrets.CC_TEST_REPORTER_ID }}
|
||||||
steps:
|
steps:
|
||||||
- uses: actions/checkout@v2
|
- uses: actions/checkout@7884fcad6b5d53d10323aee724dc68d8b9096a2e
|
||||||
|
- uses: denoland/setup-deno@004814556e37c54a2f6e31384c9e18e983317366
|
||||||
|
with:
|
||||||
|
deno-version: vx.x.x
|
||||||
- name: ${{ matrix.step }}
|
- name: ${{ matrix.step }}
|
||||||
|
if: always()
|
||||||
run: |
|
run: |
|
||||||
yarn install --immutable | grep -v 'YN0013'
|
yarn install --immutable | grep -v 'YN0013'
|
||||||
yarn ${{ matrix.step }}
|
yarn ${{ matrix.step }}
|
||||||
|
|||||||
@@ -15,14 +15,14 @@ jobs:
|
|||||||
env:
|
env:
|
||||||
YARN_ENABLE_SCRIPTS: false
|
YARN_ENABLE_SCRIPTS: false
|
||||||
CC_TEST_REPORTER_ID: ${{ secrets.CC_TEST_REPORTER_ID }}
|
CC_TEST_REPORTER_ID: ${{ secrets.CC_TEST_REPORTER_ID }}
|
||||||
GH_PAT: ${{ secrets.GH_PAT }}
|
GH_PAT: ${{ secrets.GH_PAT_BOT }}
|
||||||
GH_RELEASE_GITHUB_API_TOKEN: ${{ secrets.GH_PAT }}
|
GH_RELEASE_GITHUB_API_TOKEN: ${{ secrets.GH_PAT_BOT }}
|
||||||
NPM_TOKEN: ${{ secrets.NPM_TOKEN }}
|
NPM_TOKEN: ${{ secrets.NPM_TOKEN }}
|
||||||
steps:
|
steps:
|
||||||
- uses: actions/checkout@v2
|
- uses: actions/checkout@7884fcad6b5d53d10323aee724dc68d8b9096a2e
|
||||||
with:
|
with:
|
||||||
fetch-depth: 0
|
fetch-depth: 0
|
||||||
token: ${{ secrets.GH_PAT }}
|
token: ${{ secrets.GH_PAT_BOT }}
|
||||||
- name: ${{ matrix.step }}
|
- name: ${{ matrix.step }}
|
||||||
run: |
|
run: |
|
||||||
yarn install --immutable | grep -v 'YN0013'
|
yarn install --immutable | grep -v 'YN0013'
|
||||||
|
|||||||
@@ -1,20 +0,0 @@
|
|||||||
name: Semgrep
|
|
||||||
on:
|
|
||||||
pull_request: {}
|
|
||||||
push:
|
|
||||||
branches:
|
|
||||||
- master
|
|
||||||
|
|
||||||
jobs:
|
|
||||||
check:
|
|
||||||
if: "! startsWith(github.event.head_commit.message, '[CI Skip]') && (!github.event.pull_request || github.event.pull_request.head.repo.full_name == github.repository)"
|
|
||||||
runs-on: ubuntu-latest
|
|
||||||
env:
|
|
||||||
YARN_ENABLE_SCRIPTS: false
|
|
||||||
steps:
|
|
||||||
- uses: actions/checkout@v2
|
|
||||||
- uses: returntocorp/semgrep-action@v1
|
|
||||||
with:
|
|
||||||
auditOn: push
|
|
||||||
publishToken: ${{ secrets.SEMGREP_APP_TOKEN }}
|
|
||||||
publishDeployment: 1395
|
|
||||||
@@ -9,7 +9,7 @@ jobs:
|
|||||||
env:
|
env:
|
||||||
YARN_ENABLE_SCRIPTS: false
|
YARN_ENABLE_SCRIPTS: false
|
||||||
steps:
|
steps:
|
||||||
- uses: actions/stale@v3
|
- uses: actions/stale@98ed4cb500039dbcccf4bd9bedada4d0187f2757
|
||||||
with:
|
with:
|
||||||
repo-token: ${{ secrets.GH_PAT_BOT }}
|
repo-token: ${{ secrets.GH_PAT_BOT }}
|
||||||
stale-issue-message: 'This issue has been open for 21 days with no activity and is not labelled as an enhancement. It will be closed in 7 days.'
|
stale-issue-message: 'This issue has been open for 21 days with no activity and is not labelled as an enhancement. It will be closed in 7 days.'
|
||||||
|
|||||||
+3
-4
@@ -1,11 +1,12 @@
|
|||||||
--test-*
|
--test-*
|
||||||
_book/
|
_book/
|
||||||
build/
|
build/
|
||||||
build-docs/
|
build-*/
|
||||||
coverage/
|
coverage/
|
||||||
docs/.vuepress/dist/
|
|
||||||
node_modules/
|
node_modules/
|
||||||
tmp/
|
tmp/
|
||||||
|
/import_map.json
|
||||||
|
/mod.ts
|
||||||
.DS_Store
|
.DS_Store
|
||||||
.env.local
|
.env.local
|
||||||
.env.development.local
|
.env.development.local
|
||||||
@@ -24,6 +25,4 @@ npm-debug.log*
|
|||||||
package-lock.json
|
package-lock.json
|
||||||
yarn-debug.log*
|
yarn-debug.log*
|
||||||
yarn-error.log*
|
yarn-error.log*
|
||||||
store.db
|
|
||||||
store.db.compacted
|
|
||||||
tsconfig.*buildinfo
|
tsconfig.*buildinfo
|
||||||
|
|||||||
+1
-1
@@ -1,4 +1,4 @@
|
|||||||
// Copyright 2017-2022 @polkadot/dev authors & contributors
|
// Copyright 2017-2023 @polkadot/dev authors & contributors
|
||||||
// SPDX-License-Identifier: Apache-2.0
|
// SPDX-License-Identifier: Apache-2.0
|
||||||
|
|
||||||
module.exports = require('@polkadot/dev/config/prettier.cjs');
|
module.exports = require('@polkadot/dev/config/prettier.cjs');
|
||||||
|
|||||||
+300
@@ -1,5 +1,305 @@
|
|||||||
# CHANGELOG
|
# CHANGELOG
|
||||||
|
|
||||||
|
## 10.2.2 Jan 6, 2023
|
||||||
|
|
||||||
|
Contributed:
|
||||||
|
|
||||||
|
- Adjust Nodle Ledger mapping (Thanks to https://github.com/aliXsed)
|
||||||
|
|
||||||
|
Changes:
|
||||||
|
|
||||||
|
- Upgrade dependencies to latest stable versions
|
||||||
|
|
||||||
|
|
||||||
|
## 10.2.1 Dec 4, 2022
|
||||||
|
|
||||||
|
Contributed:
|
||||||
|
|
||||||
|
- Ledger support for Ajuna (Thanks to https://github.com/carlosala)
|
||||||
|
|
||||||
|
Changes:
|
||||||
|
|
||||||
|
- `has{Buffer, Process}` now checks on `globalThis` (helps bundlers with auto-injection)
|
||||||
|
- Add `/*#__PURE__*/` annotations for specific `export const something = someFunction(...)`
|
||||||
|
- Upgrade dependencies to latest stable versions
|
||||||
|
- Upgrade to `@polkadot/wasm-crypto` 6.4.1
|
||||||
|
|
||||||
|
|
||||||
|
## 10.1.14 Nov 27, 2022
|
||||||
|
|
||||||
|
Changes:
|
||||||
|
|
||||||
|
- Upgrade dependencies to latest stable versions
|
||||||
|
|
||||||
|
|
||||||
|
## 10.1.13 Nov 20, 2022
|
||||||
|
|
||||||
|
Contributed:
|
||||||
|
|
||||||
|
- Ledger support for Origintrail (Thanks to https://github.com/carlosala)
|
||||||
|
|
||||||
|
Changes:
|
||||||
|
|
||||||
|
- Expand type descriptions around Ledger-based structures
|
||||||
|
- Upgrade dependencies to latest stable versions
|
||||||
|
|
||||||
|
|
||||||
|
## 10.1.12 Nov 13, 2022
|
||||||
|
|
||||||
|
Changes:
|
||||||
|
|
||||||
|
- Upgrade dependencies to latest stable versions
|
||||||
|
|
||||||
|
|
||||||
|
## 10.1.11 Oct 15, 2022
|
||||||
|
|
||||||
|
Changes:
|
||||||
|
|
||||||
|
- Upgrade dependencies to latest stable versions
|
||||||
|
|
||||||
|
|
||||||
|
## 10.1.10 Oct 7, 2022
|
||||||
|
|
||||||
|
Changes:
|
||||||
|
|
||||||
|
- Ensure `{bn, n, number}ToHex(0)` always respects `bitLength`
|
||||||
|
- Upgrade dependencies to latest stable versions
|
||||||
|
|
||||||
|
|
||||||
|
## 10.1.9 Sep 24, 2022
|
||||||
|
|
||||||
|
Contributed:
|
||||||
|
|
||||||
|
- Ledger support for VTB (Thanks to https://github.com/GuilaneDen)
|
||||||
|
|
||||||
|
Changes:
|
||||||
|
|
||||||
|
- Upgrade dependencies to latest stable versions
|
||||||
|
|
||||||
|
|
||||||
|
## 10.1.8 Sep 17, 2022
|
||||||
|
|
||||||
|
Contributed:
|
||||||
|
|
||||||
|
- Ledger support for Darwinia, Phala & Khala (Thanks to https://github.com/carlosala)
|
||||||
|
- Ledger support for HydraX (Thanks to https://github.com/chcmedeiros)
|
||||||
|
|
||||||
|
Changes:
|
||||||
|
|
||||||
|
- Expand test cases
|
||||||
|
- Upgrade dependencies to latest stable versions
|
||||||
|
|
||||||
|
|
||||||
|
## 10.1.7 Sep 2, 2022
|
||||||
|
|
||||||
|
Changes:
|
||||||
|
|
||||||
|
- Hoist Ledger interface wrapError (internal adjustment)
|
||||||
|
- Upgrade dependencies to latest stable versions
|
||||||
|
|
||||||
|
|
||||||
|
## 10.1.6 Aug 23, 2022
|
||||||
|
|
||||||
|
Changes:
|
||||||
|
|
||||||
|
- Adjust `nextTick` with greater care for browser loops
|
||||||
|
- Upgrade dependencies to latest stable versions
|
||||||
|
|
||||||
|
|
||||||
|
## 10.1.5 Aug 21, 2022
|
||||||
|
|
||||||
|
Changes:
|
||||||
|
|
||||||
|
- Adjust `ledgerApps` to use new `@zondax/ledger-substrate` interfaces
|
||||||
|
- Upgrade dependencies to latest stable versions
|
||||||
|
|
||||||
|
|
||||||
|
## 10.1.4 Aug 12, 2022
|
||||||
|
|
||||||
|
Contributed:
|
||||||
|
|
||||||
|
- Ledger support for Kusama Bifrost (Thanks to https://github.com/awesomepan)
|
||||||
|
|
||||||
|
Changes:
|
||||||
|
|
||||||
|
- Upgrade dependencies to latest stable versions
|
||||||
|
|
||||||
|
|
||||||
|
## 10.1.3 Aug 5, 2022
|
||||||
|
|
||||||
|
Changes:
|
||||||
|
|
||||||
|
- Optimization for empty `arrayFlatten` case
|
||||||
|
- Coding cleanups for logger (no `as` casting)
|
||||||
|
- Optiomizations in assertion checks
|
||||||
|
|
||||||
|
|
||||||
|
## 10.1.2 Jul 29, 2022
|
||||||
|
|
||||||
|
Changes:
|
||||||
|
|
||||||
|
- Upgrade dependencies to latest stable versions
|
||||||
|
|
||||||
|
|
||||||
|
## 10.1.1 Jul 21, 2022
|
||||||
|
|
||||||
|
Changes:
|
||||||
|
|
||||||
|
- Add `arrayUnzip` as reverse of `arrayZip`
|
||||||
|
- Adjust `objectSpread` to natively handle `Map` entries spreads
|
||||||
|
- Adjust `isAscii` check to disallow `\t`, `\n`, & `\r` characters
|
||||||
|
- Adjust `nobody` zero-key pair with pre-computed address
|
||||||
|
- Align `objectProperty` & `lazyMethod` call signatures (backwards compatible)
|
||||||
|
- Various internal speed optimizations
|
||||||
|
- Upgrade dependencies to latest stable versions
|
||||||
|
|
||||||
|
|
||||||
|
## 10.0.2 Jul 10, 2022
|
||||||
|
|
||||||
|
Changes:
|
||||||
|
|
||||||
|
- Adjust async import in `x-fetch` to be Jest-friendly
|
||||||
|
|
||||||
|
|
||||||
|
## 10.0.1 Jul 8, 2022
|
||||||
|
|
||||||
|
- **Breaking change** In this major version version previously deprecated function signatures have been removed. If still using the old forms for either `bnToHex`, `bnToU8a`, `formatBalance`, `hexToBn` or `u8aToBn`, please update and only pass through an options object as the second parameter.
|
||||||
|
|
||||||
|
Contributed:
|
||||||
|
|
||||||
|
- Ledger support for Stafi (Thanks to https://github.com/kaelnew)
|
||||||
|
- Ledger support for Aleph Zero (Thanks to https://github.com/carlosala)
|
||||||
|
- Add genesis for HydraDX parachain (Thanks to https://github.com/jak-pan)
|
||||||
|
|
||||||
|
Changes:
|
||||||
|
|
||||||
|
- Remove deprecated signatures for `bnToHex`, `bnToU8a`, `formatBalance`, `hexToBn`, `u8aToBn`
|
||||||
|
- Align option handling of `n*` (BigInt) functions with `bn*` (BN)
|
||||||
|
- Allow for usage without `@types/node` installed
|
||||||
|
- Adjust for available ESM-only dependencies
|
||||||
|
- Upgrade dependencies to latest stable versions
|
||||||
|
- Upgrade to `@polkadot/wasm-crypto` 6.2.3
|
||||||
|
|
||||||
|
|
||||||
|
## 9.7.2 Jul 4, 2022
|
||||||
|
|
||||||
|
Changes:
|
||||||
|
|
||||||
|
- Upgrade to `@polkadot/wasm-crypto` 6.2.2
|
||||||
|
|
||||||
|
|
||||||
|
## 9.7.1 Jul 1, 2022
|
||||||
|
|
||||||
|
Changes:
|
||||||
|
|
||||||
|
- Update signatures where `readonly` arrays are used
|
||||||
|
- Upgrade dependencies to latest stable versions
|
||||||
|
- Upgrade to `@polkadot/wasm-crypto` 6.2.1
|
||||||
|
|
||||||
|
|
||||||
|
## 9.6.2 Jun 25, 2022
|
||||||
|
|
||||||
|
Changes:
|
||||||
|
|
||||||
|
- Fix `hexToU8a` where `0x` is not correctly converted
|
||||||
|
|
||||||
|
|
||||||
|
## 9.6.1 Jun 23, 2022
|
||||||
|
|
||||||
|
Changes:
|
||||||
|
|
||||||
|
- Add `floatToU8a` and `u8aToFloat` (both 32 & 64-bit, le & be)
|
||||||
|
- Adjust `isUndefined` check (local variable available)
|
||||||
|
- Adjust use of `assert`, `isUndefined` & `isNull`
|
||||||
|
|
||||||
|
|
||||||
|
## 9.5.1 Jun 18, 2022
|
||||||
|
|
||||||
|
Contributed:
|
||||||
|
|
||||||
|
- Update Bifrost genesisHash (Thanks to https://github.com/awesomepan)
|
||||||
|
- Add Ledger support for Composable (Thanks to https://github.com/carlosala)
|
||||||
|
|
||||||
|
Changes:
|
||||||
|
|
||||||
|
- Add `u8aToNumber` (limited, <= 48 bits) function
|
||||||
|
- Use `~~` as bitwise/faster `Math.floor` replacement
|
||||||
|
- Remove unneeded `objectSpread` option expansions
|
||||||
|
- Optimize `hexToU8a` operations
|
||||||
|
- Optimize `stringCamelCase` operations
|
||||||
|
- Optimize `u8aToBn` operations
|
||||||
|
- Additional internal/external comments (as missing)
|
||||||
|
- Upgrade dependencies to latest stable versions
|
||||||
|
|
||||||
|
|
||||||
|
## 9.4.1 Jun 4, 2022
|
||||||
|
|
||||||
|
Changes:
|
||||||
|
|
||||||
|
- Add `nextTick` to `@polkadot/util` to defer execution to the queue
|
||||||
|
- Upgrade dependencies to latest stable versions
|
||||||
|
|
||||||
|
|
||||||
|
## 9.3.1 May 29, 2022
|
||||||
|
|
||||||
|
Contributed:
|
||||||
|
|
||||||
|
- Add Ledger support for Parallel (Thanks to https://github.com/carlosala)
|
||||||
|
- Add Ledger support for Astar & Polkadex (Thanks to https://github.com/carlosala)
|
||||||
|
|
||||||
|
Changes:
|
||||||
|
|
||||||
|
- Adjust `u8aToU8a` checks with better `isU8a` shortcut
|
||||||
|
- Adjust compact conversion with unrolled loops
|
||||||
|
- Adjust `string{Camel, Pascal}Case` with loop (no map)
|
||||||
|
- Add `compactFromU8aLim` variant with Uint8Array-only inputs
|
||||||
|
- Add `u8aConcatStrict` variant with Uint8Array-only inputs
|
||||||
|
- Internal code maintainability enhancements
|
||||||
|
- Upgrade dependencies to latest stable versions
|
||||||
|
|
||||||
|
|
||||||
|
## 9.2.1 May 13, 2022
|
||||||
|
|
||||||
|
Contributed:
|
||||||
|
|
||||||
|
- Add Ledger support for Acala (Thanks to https://github.com/ntduan)
|
||||||
|
|
||||||
|
Changes:
|
||||||
|
|
||||||
|
- Optimize `u8aToHex` with direct (non-hex) conversion
|
||||||
|
- Change all occurences of `.substr(...)` to `.substring(...)`
|
||||||
|
- Sync with upstream Substrate ss58 registry
|
||||||
|
- Mark deprecated function signatures (no removals)
|
||||||
|
- Re-enable auto init of `cryptoWaitReady()`
|
||||||
|
- Upgrade to `@polkadot/wasm-crypto` 6.1.1
|
||||||
|
|
||||||
|
|
||||||
|
## 9.1.1 Apr 30, 2022
|
||||||
|
|
||||||
|
Contributed:
|
||||||
|
|
||||||
|
- Add Ledger support for Statemint (Thanks to https://github.com/carlosala)
|
||||||
|
- Add Ledger support for xxnetwork (Thanks to https://github.com/xx-labs)
|
||||||
|
|
||||||
|
Changes:
|
||||||
|
|
||||||
|
- Adjust/dedupe output from `detectPackage`
|
||||||
|
- Adjust `isHex` performance test
|
||||||
|
- Add field-level comments to some `*Options` structures
|
||||||
|
- Add new Rococo genesisHash (reset)
|
||||||
|
|
||||||
|
|
||||||
|
## 9.0.1 Apr 9, 2022
|
||||||
|
|
||||||
|
- **Breaking change** In this major version the commonjs outputs are moved to a sub-folder. Since the export map and main field in package.json does reflect this change, there should be no usage changes. However the packages here will all need to be on the same version for internal linkage.
|
||||||
|
|
||||||
|
Changes:
|
||||||
|
|
||||||
|
- Be explicit in `@polkadot/util-crypto` re-exports from `@polkadot/networks`
|
||||||
|
- Output commonjs files under the `cjs/**` root
|
||||||
|
- Upgrade to `@polkadot/wasm-crypto` 6.0.1
|
||||||
|
|
||||||
|
|
||||||
## 8.7.1 Mar 27, 2022
|
## 8.7.1 Mar 27, 2022
|
||||||
|
|
||||||
Changes:
|
Changes:
|
||||||
|
|||||||
+10
-3
@@ -1,9 +1,11 @@
|
|||||||
1288 Jaco 8.7.1 (#1449)
|
1502 Jaco 10.2.2 (#1700)
|
||||||
|
10 Carlo Sala feat(networks): support ledger for ajuna (#1682)
|
||||||
9 Antoine Estienne Add eth uri keyring test (#1291)
|
9 Antoine Estienne Add eth uri keyring test (#1291)
|
||||||
6 Amaury Martiny Add tests from Rust (#283)
|
6 Amaury Martiny Add tests from Rust (#283)
|
||||||
|
5 Jakub Pánik Add HydraDX parachain to genesis (#1583)
|
||||||
5 kwingram25 Add BN consts and timeToString (#610)
|
5 kwingram25 Add BN consts and timeToString (#610)
|
||||||
4 Adam Dossa Update Polymesh Genesis Hash (#1193)
|
4 Adam Dossa Update Polymesh Genesis Hash (#1193)
|
||||||
4 Jakub Pánik Add basilisk 🐍 (#1396)
|
4 pan add bifrost kusama (#1626)
|
||||||
3 Luke Schoen docs: Fix example in readme since we use default imports (#243)
|
3 Luke Schoen docs: Fix example in readme since we use default imports (#243)
|
||||||
2 AndreasGassmann feat(dependencies): remove moment.js (#530)
|
2 AndreasGassmann feat(dependencies): remove moment.js (#530)
|
||||||
2 Gav Wood Fix stake:unstake (#182)
|
2 Gav Wood Fix stake:unstake (#182)
|
||||||
@@ -12,15 +14,17 @@
|
|||||||
2 Kami Adding Westend genesis. (#1429)
|
2 Kami Adding Westend genesis. (#1429)
|
||||||
2 Lovesh Harchandani Update genesis hash of Dock mainnet (#1436)
|
2 Lovesh Harchandani Update genesis hash of Dock mainnet (#1436)
|
||||||
2 Nantian fix bigint type (#1079)
|
2 Nantian fix bigint type (#1079)
|
||||||
2 pan add bifrost (#1296)
|
|
||||||
2 Stefanie Doll Add missing dependencies to util-crypto (#424)
|
2 Stefanie Doll Add missing dependencies to util-crypto (#424)
|
||||||
1 Agustinus Theodorus docs: fix typo in naclSeal docs. (#1005)
|
1 Agustinus Theodorus docs: fix typo in naclSeal docs. (#1005)
|
||||||
|
1 Alex Sedighi fix Nodle's known network name (#1699)
|
||||||
1 Alexander Krupenkin Added ECDSA keypair support (#589)
|
1 Alexander Krupenkin Added ECDSA keypair support (#589)
|
||||||
1 alexdniep added equilibrium slip44; added equilibrium genesis hash (#984)
|
1 alexdniep added equilibrium slip44; added equilibrium genesis hash (#984)
|
||||||
1 amphineko chore: fix typo in versionDetect messages (#941)
|
1 amphineko chore: fix typo in versionDetect messages (#941)
|
||||||
1 Axel Chalon Simplify @polkadot/keyring KeyringPair (#419)
|
1 Axel Chalon Simplify @polkadot/keyring KeyringPair (#419)
|
||||||
1 Brad Larson [FIX] Adjust error message (#646)
|
1 Brad Larson [FIX] Adjust error message (#646)
|
||||||
|
1 Carlos Medeiros add hydradx to knownLedger (#1647)
|
||||||
1 Eliott Teissonniere add nodle ledger specs (#1089)
|
1 Eliott Teissonniere add nodle ledger specs (#1089)
|
||||||
|
1 Guilane DENGUIR feat(VTB): Added support for VTB blockchain (#1651)
|
||||||
1 h4x3rotab Throws an error when signing with a locked keypair (#578)
|
1 h4x3rotab Throws an error when signing with a locked keypair (#578)
|
||||||
1 Harry Liu Update README.md (#446)
|
1 Harry Liu Update README.md (#446)
|
||||||
1 Hoon Kim replace plasm genesis with astar (#1397)
|
1 Hoon Kim replace plasm genesis with astar (#1397)
|
||||||
@@ -29,10 +33,12 @@
|
|||||||
1 Jake Naviasky Add evmToAddress and addressToEvm crypto utils. (#705)
|
1 Jake Naviasky Add evmToAddress and addressToEvm crypto utils. (#705)
|
||||||
1 JesseAbram added check if valid address to docs (#440)
|
1 JesseAbram added check if valid address to docs (#440)
|
||||||
1 joe petrowski Add example for multisig address creation (#590)
|
1 joe petrowski Add example for multisig address creation (#590)
|
||||||
|
1 kaelnew add ledger support for stafi (#1569)
|
||||||
1 Lezek123 logger - wildcard include/exclude with DEBUG env (#932)
|
1 Lezek123 logger - wildcard include/exclude with DEBUG env (#932)
|
||||||
1 Mario Neises remove redudant export (#257)
|
1 Mario Neises remove redudant export (#257)
|
||||||
1 Miguel Hervas Add CFG Ledger Support (#1057)
|
1 Miguel Hervas Add CFG Ledger Support (#1057)
|
||||||
1 nahuseyoum Reserving 65 for Aventus based on the new extended range (#871)
|
1 nahuseyoum Reserving 65 for Aventus based on the new extended range (#871)
|
||||||
|
1 Nantian add acala ledger config (#1485)
|
||||||
1 qwer951123 Add acala genesis (#1161)
|
1 qwer951123 Add acala genesis (#1161)
|
||||||
1 Raoul Millais Fix yarn add instructions in x-global README (#873)
|
1 Raoul Millais Fix yarn add instructions in x-global README (#873)
|
||||||
1 Raymond Zhong Add Edgeware ledger app (#1006)
|
1 Raymond Zhong Add Edgeware ledger app (#1006)
|
||||||
@@ -44,4 +50,5 @@
|
|||||||
1 Tore19 Add stafi genesis hash (#1096)
|
1 Tore19 Add stafi genesis hash (#1096)
|
||||||
1 Wei Tang ss58: add Kulupu prefix to the list (#595)
|
1 Wei Tang ss58: add Kulupu prefix to the list (#595)
|
||||||
1 WoeOm Handing high precision scenes (#450)
|
1 WoeOm Handing high precision scenes (#450)
|
||||||
|
1 xx network Add xxnetwork genesis hash and ledger app (#1463)
|
||||||
1 Yuri Extra check for process for browser bundles (#923)
|
1 Yuri Extra check for process for browser bundles (#923)
|
||||||
@@ -1,10 +1,3 @@
|
|||||||
[](https://polkadot.js.org)
|
|
||||||

|
|
||||||
[](https://www.npmjs.com/package/@polkadot/util)
|
|
||||||
[](https://www.npmjs.com/package/@polkadot/util)
|
|
||||||
[](https://codeclimate.com/github/polkadot-js/common)
|
|
||||||
[](https://codeclimate.com/github/polkadot-js/common)
|
|
||||||
|
|
||||||
# @polkadot/common
|
# @polkadot/common
|
||||||
|
|
||||||
Various useful utility functions that are used across all projects in the [@polkadot](https://polkadot.js.org) namespace. It provides utility functions with additional safety checks, allowing not only for consistent coding, but also reducing the general boilerplate.
|
Various useful utility functions that are used across all projects in the [@polkadot](https://polkadot.js.org) namespace. It provides utility functions with additional safety checks, allowing not only for consistent coding, but also reducing the general boilerplate.
|
||||||
|
|||||||
+1
-1
@@ -1,4 +1,4 @@
|
|||||||
// Copyright 2017-2022 @polkadot/util authors & contributors
|
// Copyright 2017-2023 @polkadot/util authors & contributors
|
||||||
// SPDX-License-Identifier: Apache-2.0
|
// SPDX-License-Identifier: Apache-2.0
|
||||||
|
|
||||||
module.exports = require('@polkadot/dev/config/babel-config-cjs.cjs');
|
module.exports = require('@polkadot/dev/config/babel-config-cjs.cjs');
|
||||||
|
|||||||
@@ -0,0 +1,5 @@
|
|||||||
|
{
|
||||||
|
"imports": {
|
||||||
|
"https://esm.sh/v90/@types/bn.js@~5.2/index.d.ts": "https://esm.sh/v90/@types/bn.js@5.1.0/index.d.ts"
|
||||||
|
}
|
||||||
|
}
|
||||||
+1
-1
@@ -1,4 +1,4 @@
|
|||||||
// Copyright 2017-2022 @polkadot/util authors & contributors
|
// Copyright 2017-2023 @polkadot/util authors & contributors
|
||||||
// SPDX-License-Identifier: Apache-2.0
|
// SPDX-License-Identifier: Apache-2.0
|
||||||
|
|
||||||
const config = require('@polkadot/dev/config/jest.cjs');
|
const config = require('@polkadot/dev/config/jest.cjs');
|
||||||
|
|||||||
+13
-7
@@ -10,28 +10,34 @@
|
|||||||
"url": "https://github.com/polkadot-js/common.git"
|
"url": "https://github.com/polkadot-js/common.git"
|
||||||
},
|
},
|
||||||
"sideEffects": false,
|
"sideEffects": false,
|
||||||
"version": "8.7.1",
|
"type": "module",
|
||||||
|
"version": "10.2.2",
|
||||||
|
"versions": {
|
||||||
|
"git": "10.2.2",
|
||||||
|
"npm": "10.2.2"
|
||||||
|
},
|
||||||
"workspaces": [
|
"workspaces": [
|
||||||
"packages/*"
|
"packages/*"
|
||||||
],
|
],
|
||||||
"scripts": {
|
"scripts": {
|
||||||
"build": "polkadot-dev-build-ts",
|
"build": "polkadot-dev-build-ts",
|
||||||
|
"build:networks": "yarn test:one packages/networks/src",
|
||||||
"build:release": "polkadot-ci-ghact-build",
|
"build:release": "polkadot-ci-ghact-build",
|
||||||
"build:rollup": "polkadot-exec-rollup --config",
|
"build:rollup": "polkadot-exec-rollup --config",
|
||||||
"clean": "polkadot-dev-clean-build",
|
"clean": "polkadot-dev-clean-build",
|
||||||
|
"deno": "yarn polkadot-dev-deno-map && yarn build && deno check --import-map=import_map.json mod.ts",
|
||||||
"lint": "polkadot-dev-run-lint",
|
"lint": "polkadot-dev-run-lint",
|
||||||
"networks:crosscheck": "polkadot-dev-run-test packages/networks/src/crosscheck",
|
|
||||||
"postinstall": "polkadot-dev-yarn-only",
|
"postinstall": "polkadot-dev-yarn-only",
|
||||||
"test": "polkadot-dev-run-test --coverage --runInBand --testPathIgnorePatterns crosscheck --testPathIgnorePatterns toMiniSecretCmp",
|
"test": "NODE_OPTIONS=--experimental-vm-modules polkadot-dev-run-test --coverage --runInBand --testPathIgnorePatterns crosscheck --testPathIgnorePatterns toMiniSecretCmp",
|
||||||
"test:mnemonicCmp": "polkadot-dev-run-test packages/util-crypto/src/mnemonic/toMiniSecretCmp.spec.ts",
|
"test:mnemonicCmp": "polkadot-dev-run-test packages/util-crypto/src/mnemonic/toMiniSecretCmp.spec.ts",
|
||||||
"test:one": "polkadot-dev-run-test --runInBand"
|
"test:one": "polkadot-dev-run-test --runInBand"
|
||||||
},
|
},
|
||||||
"devDependencies": {
|
"devDependencies": {
|
||||||
"@babel/core": "^7.17.8",
|
"@babel/core": "^7.20.12",
|
||||||
"@polkadot/dev": "^0.65.101",
|
"@polkadot/dev": "^0.67.177",
|
||||||
"@types/jest": "^27.4.1"
|
"@types/jest": "^29.2.5"
|
||||||
},
|
},
|
||||||
"resolutions": {
|
"resolutions": {
|
||||||
"typescript": "^4.6.3"
|
"typescript": "^4.9.4"
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -16,18 +16,18 @@
|
|||||||
},
|
},
|
||||||
"sideEffects": false,
|
"sideEffects": false,
|
||||||
"type": "module",
|
"type": "module",
|
||||||
"version": "8.7.1",
|
"version": "10.2.2",
|
||||||
"browser": "browser.js",
|
"browser": "browser.js",
|
||||||
"main": "node.js",
|
"main": "node.js",
|
||||||
"react-native": "react-native.js",
|
"react-native": "react-native.js",
|
||||||
"dependencies": {
|
"dependencies": {
|
||||||
"@babel/runtime": "^7.17.8",
|
"@babel/runtime": "^7.20.7",
|
||||||
"@ledgerhq/hw-transport": "^6.24.1",
|
"@ledgerhq/hw-transport": "^6.27.9",
|
||||||
"@ledgerhq/hw-transport-webhid": "^6.24.1",
|
"@ledgerhq/hw-transport-webhid": "^6.27.9",
|
||||||
"@ledgerhq/hw-transport-webusb": "^6.24.1",
|
"@ledgerhq/hw-transport-webusb": "^6.27.9",
|
||||||
"@polkadot/util": "8.7.1"
|
"@polkadot/util": "10.2.2"
|
||||||
},
|
},
|
||||||
"optionalDependencies": {
|
"optionalDependencies": {
|
||||||
"@ledgerhq/hw-transport-node-hid-singleton": "^6.26.0"
|
"@ledgerhq/hw-transport-node-hid-singleton": "^6.28.6"
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -1,4 +1,4 @@
|
|||||||
// Copyright 2017-2022 @polkadot/hw-ledger authors & contributors
|
// Copyright 2017-2023 @polkadot/hw-ledger authors & contributors
|
||||||
// SPDX-License-Identifier: Apache-2.0
|
// SPDX-License-Identifier: Apache-2.0
|
||||||
|
|
||||||
import type Transport from '@ledgerhq/hw-transport';
|
import type Transport from '@ledgerhq/hw-transport';
|
||||||
|
|||||||
@@ -1,4 +1,4 @@
|
|||||||
// Copyright 2017-2022 @polkadot/hw-ledger authors & contributors
|
// Copyright 2017-2023 @polkadot/hw-ledger authors & contributors
|
||||||
// SPDX-License-Identifier: Apache-2.0
|
// SPDX-License-Identifier: Apache-2.0
|
||||||
|
|
||||||
export default [];
|
export default [];
|
||||||
|
|||||||
@@ -1,4 +1,4 @@
|
|||||||
// Copyright 2017-2022 @polkadot/hw-ledger-transports authors & contributors
|
// Copyright 2017-2023 @polkadot/hw-ledger-transports authors & contributors
|
||||||
// SPDX-License-Identifier: Apache-2.0
|
// SPDX-License-Identifier: Apache-2.0
|
||||||
|
|
||||||
// Do not edit, auto-generated by @polkadot/dev
|
// Do not edit, auto-generated by @polkadot/dev
|
||||||
|
|||||||
@@ -0,0 +1,8 @@
|
|||||||
|
// Copyright 2017-2023 @polkadot/hw-ledger authors & contributors
|
||||||
|
// SPDX-License-Identifier: Apache-2.0
|
||||||
|
|
||||||
|
import type { TransportDef } from './types';
|
||||||
|
|
||||||
|
export { packageInfo } from './packageInfo';
|
||||||
|
|
||||||
|
export const transports: TransportDef[] = [];
|
||||||
@@ -0,0 +1,4 @@
|
|||||||
|
// Copyright 2017-2023 @polkadot/hw-ledger authors & contributors
|
||||||
|
// SPDX-License-Identifier: Apache-2.0
|
||||||
|
|
||||||
|
export * from './empty';
|
||||||
@@ -1,4 +1,4 @@
|
|||||||
// Copyright 2017-2022 @polkadot/hw-ledger authors & contributors
|
// Copyright 2017-2023 @polkadot/hw-ledger authors & contributors
|
||||||
// SPDX-License-Identifier: Apache-2.0
|
// SPDX-License-Identifier: Apache-2.0
|
||||||
|
|
||||||
import type Transport from '@ledgerhq/hw-transport';
|
import type Transport from '@ledgerhq/hw-transport';
|
||||||
|
|||||||
@@ -1,6 +1,6 @@
|
|||||||
// Copyright 2017-2022 @polkadot/hw-ledger-transports authors & contributors
|
// Copyright 2017-2023 @polkadot/hw-ledger-transports authors & contributors
|
||||||
// SPDX-License-Identifier: Apache-2.0
|
// SPDX-License-Identifier: Apache-2.0
|
||||||
|
|
||||||
// Do not edit, auto-generated by @polkadot/dev
|
// Do not edit, auto-generated by @polkadot/dev
|
||||||
|
|
||||||
export const packageInfo = { name: '@polkadot/hw-ledger-transports', path: 'auto', type: 'auto', version: '8.7.1' };
|
export const packageInfo = { name: '@polkadot/hw-ledger-transports', path: 'auto', type: 'auto', version: '10.2.2' };
|
||||||
|
|||||||
@@ -1,8 +1,4 @@
|
|||||||
// Copyright 2017-2022 @polkadot/hw-ledger authors & contributors
|
// Copyright 2017-2023 @polkadot/hw-ledger authors & contributors
|
||||||
// SPDX-License-Identifier: Apache-2.0
|
// SPDX-License-Identifier: Apache-2.0
|
||||||
|
|
||||||
import type { TransportDef } from './types';
|
export * from './empty';
|
||||||
|
|
||||||
export { packageInfo } from './packageInfo';
|
|
||||||
|
|
||||||
export const transports: TransportDef[] = [];
|
|
||||||
|
|||||||
@@ -1,4 +1,4 @@
|
|||||||
// Copyright 2017-2022 @polkadot/hw-ledger authors & contributors
|
// Copyright 2017-2023 @polkadot/hw-ledger authors & contributors
|
||||||
// SPDX-License-Identifier: Apache-2.0
|
// SPDX-License-Identifier: Apache-2.0
|
||||||
|
|
||||||
import Transport from '@ledgerhq/hw-transport';
|
import Transport from '@ledgerhq/hw-transport';
|
||||||
@@ -6,6 +6,8 @@ import Transport from '@ledgerhq/hw-transport';
|
|||||||
export type LedgerTypes = 'hid' | 'u2f' | 'webusb';
|
export type LedgerTypes = 'hid' | 'u2f' | 'webusb';
|
||||||
|
|
||||||
export interface TransportDef {
|
export interface TransportDef {
|
||||||
|
/** Create a transport to be used in Ledger operations */
|
||||||
create (): Promise<Transport>;
|
create (): Promise<Transport>;
|
||||||
|
/** The type of the underlying transport definition */
|
||||||
type: LedgerTypes;
|
type: LedgerTypes;
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -19,13 +19,13 @@
|
|||||||
"./detectPackage.cjs"
|
"./detectPackage.cjs"
|
||||||
],
|
],
|
||||||
"type": "module",
|
"type": "module",
|
||||||
"version": "8.7.1",
|
"version": "10.2.2",
|
||||||
"main": "index.js",
|
"main": "index.js",
|
||||||
"dependencies": {
|
"dependencies": {
|
||||||
"@babel/runtime": "^7.17.8",
|
"@babel/runtime": "^7.20.7",
|
||||||
"@ledgerhq/hw-transport": "^6.24.1",
|
"@ledgerhq/hw-transport": "^6.27.9",
|
||||||
"@polkadot/hw-ledger-transports": "8.7.1",
|
"@polkadot/hw-ledger-transports": "10.2.2",
|
||||||
"@polkadot/util": "8.7.1",
|
"@polkadot/util": "10.2.2",
|
||||||
"@zondax/ledger-substrate": "^0.24.0"
|
"@zondax/ledger-substrate": "^0.40.3"
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -1,11 +1,13 @@
|
|||||||
// Copyright 2017-2022 @polkadot/hw-ledger authors & contributors
|
// Copyright 2017-2023 @polkadot/hw-ledger authors & contributors
|
||||||
// SPDX-License-Identifier: Apache-2.0
|
// SPDX-License-Identifier: Apache-2.0
|
||||||
|
|
||||||
import type { ResponseBase, SubstrateApp } from '@zondax/ledger-substrate';
|
import type { SubstrateApp } from '@zondax/ledger-substrate';
|
||||||
import type { AccountOptions, LedgerAddress, LedgerSignature, LedgerTypes, LedgerVersion } from './types';
|
import type { AccountOptions, LedgerAddress, LedgerSignature, LedgerTypes, LedgerVersion } from './types';
|
||||||
|
|
||||||
|
import { newSubstrateApp } from '@zondax/ledger-substrate';
|
||||||
|
|
||||||
import { transports } from '@polkadot/hw-ledger-transports';
|
import { transports } from '@polkadot/hw-ledger-transports';
|
||||||
import { assert, u8aToBuffer } from '@polkadot/util';
|
import { hexAddPrefix, u8aToBuffer } from '@polkadot/util';
|
||||||
|
|
||||||
import { LEDGER_DEFAULT_ACCOUNT, LEDGER_DEFAULT_CHANGE, LEDGER_DEFAULT_INDEX, LEDGER_SUCCESS_CODE } from './constants';
|
import { LEDGER_DEFAULT_ACCOUNT, LEDGER_DEFAULT_CHANGE, LEDGER_DEFAULT_INDEX, LEDGER_SUCCESS_CODE } from './constants';
|
||||||
import { ledgerApps } from './defaults';
|
import { ledgerApps } from './defaults';
|
||||||
@@ -14,6 +16,19 @@ export { packageInfo } from './packageInfo';
|
|||||||
|
|
||||||
type Chain = keyof typeof ledgerApps;
|
type Chain = keyof typeof ledgerApps;
|
||||||
|
|
||||||
|
type WrappedResult = Awaited<ReturnType<SubstrateApp['getAddress' | 'getVersion' | 'sign']>>;
|
||||||
|
|
||||||
|
/** @internal Wraps a SubstrateApp call, checking the result for any errors which result in a rejection */
|
||||||
|
async function wrapError <T extends WrappedResult> (promise: Promise<T>): Promise<T> {
|
||||||
|
const result = await promise;
|
||||||
|
|
||||||
|
if (result.return_code !== LEDGER_SUCCESS_CODE) {
|
||||||
|
throw new Error(result.error_message);
|
||||||
|
}
|
||||||
|
|
||||||
|
return result;
|
||||||
|
}
|
||||||
|
|
||||||
// A very basic wrapper for a ledger app -
|
// A very basic wrapper for a ledger app -
|
||||||
// - it connects automatically, creating an app as required
|
// - it connects automatically, creating an app as required
|
||||||
// - Promises return errors (instead of wrapper errors)
|
// - Promises return errors (instead of wrapper errors)
|
||||||
@@ -26,8 +41,11 @@ export class Ledger {
|
|||||||
|
|
||||||
constructor (transport: LedgerTypes, chain: Chain) {
|
constructor (transport: LedgerTypes, chain: Chain) {
|
||||||
// u2f is deprecated
|
// u2f is deprecated
|
||||||
assert(['hid', 'webusb'].includes(transport), () => `Unsupported transport ${transport}`);
|
if (!['hid', 'webusb'].includes(transport)) {
|
||||||
assert(Object.keys(ledgerApps).includes(chain), () => `Unsupported chain ${chain}`);
|
throw new Error(`Unsupported transport ${transport}`);
|
||||||
|
} else if (!Object.keys(ledgerApps).includes(chain)) {
|
||||||
|
throw new Error(`Unsupported chain ${chain}`);
|
||||||
|
}
|
||||||
|
|
||||||
this.#chain = chain;
|
this.#chain = chain;
|
||||||
this.#transport = transport;
|
this.#transport = transport;
|
||||||
@@ -35,18 +53,18 @@ export class Ledger {
|
|||||||
|
|
||||||
public async getAddress (confirm = false, accountOffset = 0, addressOffset = 0, { account = LEDGER_DEFAULT_ACCOUNT, addressIndex = LEDGER_DEFAULT_INDEX, change = LEDGER_DEFAULT_CHANGE }: Partial<AccountOptions> = {}): Promise<LedgerAddress> {
|
public async getAddress (confirm = false, accountOffset = 0, addressOffset = 0, { account = LEDGER_DEFAULT_ACCOUNT, addressIndex = LEDGER_DEFAULT_INDEX, change = LEDGER_DEFAULT_CHANGE }: Partial<AccountOptions> = {}): Promise<LedgerAddress> {
|
||||||
return this.#withApp(async (app: SubstrateApp): Promise<LedgerAddress> => {
|
return this.#withApp(async (app: SubstrateApp): Promise<LedgerAddress> => {
|
||||||
const { address, pubKey } = await this.#wrapError(app.getAddress(account + accountOffset, change, addressIndex + addressOffset, confirm));
|
const { address, pubKey } = await wrapError(app.getAddress(account + accountOffset, change, addressIndex + addressOffset, confirm));
|
||||||
|
|
||||||
return {
|
return {
|
||||||
address,
|
address,
|
||||||
publicKey: `0x${pubKey}`
|
publicKey: hexAddPrefix(pubKey)
|
||||||
};
|
};
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
public async getVersion (): Promise<LedgerVersion> {
|
public async getVersion (): Promise<LedgerVersion> {
|
||||||
return this.#withApp(async (app: SubstrateApp): Promise<LedgerVersion> => {
|
return this.#withApp(async (app: SubstrateApp): Promise<LedgerVersion> => {
|
||||||
const { device_locked: isLocked, major, minor, patch, test_mode: isTestMode } = await this.#wrapError(app.getVersion());
|
const { device_locked: isLocked, major, minor, patch, test_mode: isTestMode } = await wrapError(app.getVersion());
|
||||||
|
|
||||||
return {
|
return {
|
||||||
isLocked,
|
isLocked,
|
||||||
@@ -59,10 +77,10 @@ export class Ledger {
|
|||||||
public async sign (message: Uint8Array, accountOffset = 0, addressOffset = 0, { account = LEDGER_DEFAULT_ACCOUNT, addressIndex = LEDGER_DEFAULT_INDEX, change = LEDGER_DEFAULT_CHANGE }: Partial<AccountOptions> = {}): Promise<LedgerSignature> {
|
public async sign (message: Uint8Array, accountOffset = 0, addressOffset = 0, { account = LEDGER_DEFAULT_ACCOUNT, addressIndex = LEDGER_DEFAULT_INDEX, change = LEDGER_DEFAULT_CHANGE }: Partial<AccountOptions> = {}): Promise<LedgerSignature> {
|
||||||
return this.#withApp(async (app: SubstrateApp): Promise<LedgerSignature> => {
|
return this.#withApp(async (app: SubstrateApp): Promise<LedgerSignature> => {
|
||||||
const buffer = u8aToBuffer(message);
|
const buffer = u8aToBuffer(message);
|
||||||
const { signature } = await this.#wrapError(app.sign(account + accountOffset, change, addressIndex + addressOffset, buffer));
|
const { signature } = await wrapError(app.sign(account + accountOffset, change, addressIndex + addressOffset, buffer));
|
||||||
|
|
||||||
return {
|
return {
|
||||||
signature: `0x${signature.toString('hex')}`
|
signature: hexAddPrefix(signature.toString('hex'))
|
||||||
};
|
};
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
@@ -71,11 +89,13 @@ export class Ledger {
|
|||||||
if (!this.#app) {
|
if (!this.#app) {
|
||||||
const def = transports.find(({ type }) => type === this.#transport);
|
const def = transports.find(({ type }) => type === this.#transport);
|
||||||
|
|
||||||
assert(def, () => `Unable to find a transport for ${this.#transport}`);
|
if (!def) {
|
||||||
|
throw new Error(`Unable to find a transport for ${this.#transport}`);
|
||||||
|
}
|
||||||
|
|
||||||
const transport = await def.create();
|
const transport = await def.create();
|
||||||
|
|
||||||
this.#app = ledgerApps[this.#chain](transport);
|
this.#app = newSubstrateApp(transport, ledgerApps[this.#chain]);
|
||||||
}
|
}
|
||||||
|
|
||||||
return this.#app;
|
return this.#app;
|
||||||
@@ -92,12 +112,4 @@ export class Ledger {
|
|||||||
throw error;
|
throw error;
|
||||||
}
|
}
|
||||||
};
|
};
|
||||||
|
|
||||||
#wrapError = async <T extends ResponseBase> (promise: Promise<T>): Promise<T> => {
|
|
||||||
const result = await promise;
|
|
||||||
|
|
||||||
assert(result.return_code === LEDGER_SUCCESS_CODE, () => result.error_message);
|
|
||||||
|
|
||||||
return result;
|
|
||||||
};
|
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -1,4 +1,4 @@
|
|||||||
// Copyright 2017-2022 @polkadot/hw-ledger authors & contributors
|
// Copyright 2017-2023 @polkadot/hw-ledger authors & contributors
|
||||||
// SPDX-License-Identifier: Apache-2.0
|
// SPDX-License-Identifier: Apache-2.0
|
||||||
|
|
||||||
export const LEDGER_DEFAULT_ACCOUNT = 0x80000000;
|
export const LEDGER_DEFAULT_ACCOUNT = 0x80000000;
|
||||||
|
|||||||
@@ -0,0 +1,16 @@
|
|||||||
|
// Copyright 2017-2023 @polkadot/hw-ledger authors & contributors
|
||||||
|
// SPDX-License-Identifier: Apache-2.0
|
||||||
|
|
||||||
|
import { supportedApps } from '@zondax/ledger-substrate';
|
||||||
|
|
||||||
|
import { ledgerApps } from './defaults';
|
||||||
|
|
||||||
|
describe('ledgerApps', (): void => {
|
||||||
|
it.each(Object.keys(ledgerApps))('%s is known', (k): void => {
|
||||||
|
expect(
|
||||||
|
supportedApps.find(({ name }) =>
|
||||||
|
name === ledgerApps[k]
|
||||||
|
)
|
||||||
|
).toBeDefined();
|
||||||
|
});
|
||||||
|
});
|
||||||
@@ -1,23 +1,39 @@
|
|||||||
// Copyright 2017-2022 @polkadot/hw-ledger authors & contributors
|
// Copyright 2017-2023 @polkadot/hw-ledger authors & contributors
|
||||||
// SPDX-License-Identifier: Apache-2.0
|
// SPDX-License-Identifier: Apache-2.0
|
||||||
|
|
||||||
import type Transport from '@ledgerhq/hw-transport';
|
|
||||||
import type { SubstrateApp } from '@zondax/ledger-substrate';
|
|
||||||
|
|
||||||
import { newBifrostApp, newCentrifugeApp, newDockApp, newEdgewareApp, newEquilibriumApp, newGenshiroApp, newKusamaApp, newNodleApp, newPolkadotApp, newPolymeshApp, newSoraApp, newStatemineApp } from '@zondax/ledger-substrate';
|
|
||||||
|
|
||||||
// These match up with the keys of the knownLedger object in the @polkadot/networks/defaults/ledger.ts
|
// These match up with the keys of the knownLedger object in the @polkadot/networks/defaults/ledger.ts
|
||||||
export const ledgerApps: Record<string, (transport: Transport) => SubstrateApp> = {
|
// and maps to the known name in the @zondax/ledger-substrate/supported_apps package
|
||||||
bifrost: newBifrostApp,
|
export const ledgerApps: Record<string, string> = {
|
||||||
centrifuge: newCentrifugeApp,
|
acala: 'Acala',
|
||||||
'dock-mainnet': newDockApp,
|
ajuna: 'Ajuna',
|
||||||
edgeware: newEdgewareApp,
|
'aleph-node': 'AlephZero',
|
||||||
equilibrium: newEquilibriumApp,
|
astar: 'Astar',
|
||||||
genshiro: newGenshiroApp,
|
bifrost: 'Bifrost',
|
||||||
kusama: newKusamaApp,
|
'bifrost-kusama': 'BifrostKusama',
|
||||||
'nodle-chain': newNodleApp,
|
centrifuge: 'Centrifuge',
|
||||||
polkadot: newPolkadotApp,
|
composable: 'Composable',
|
||||||
polymesh: newPolymeshApp,
|
darwinia: 'Darwinia',
|
||||||
sora: newSoraApp,
|
'dock-mainnet': 'Dock',
|
||||||
statemine: newStatemineApp
|
edgeware: 'Edgeware',
|
||||||
|
equilibrium: 'Equilibrium',
|
||||||
|
genshiro: 'Genshiro',
|
||||||
|
hydradx: 'HydraDX',
|
||||||
|
'interlay-parachain': 'Interlay',
|
||||||
|
karura: 'Karura',
|
||||||
|
khala: 'Khala',
|
||||||
|
kusama: 'Kusama',
|
||||||
|
nodle: 'Nodle',
|
||||||
|
origintrail: 'OriginTrail',
|
||||||
|
parallel: 'Parallel',
|
||||||
|
phala: 'Phala',
|
||||||
|
polkadex: 'Polkadex',
|
||||||
|
polkadot: 'Polkadot',
|
||||||
|
polymesh: 'Polymesh',
|
||||||
|
sora: 'Sora',
|
||||||
|
stafi: 'Stafi',
|
||||||
|
statemine: 'Statemine',
|
||||||
|
statemint: 'Statemint',
|
||||||
|
unique: 'Unique',
|
||||||
|
vtb: 'VTB',
|
||||||
|
xxnetwork: 'XXNetwork'
|
||||||
};
|
};
|
||||||
|
|||||||
@@ -1,4 +1,4 @@
|
|||||||
// Copyright 2017-2022 @polkadot/hw-ledger authors & contributors
|
// Copyright 2017-2023 @polkadot/hw-ledger authors & contributors
|
||||||
// SPDX-License-Identifier: Apache-2.0
|
// SPDX-License-Identifier: Apache-2.0
|
||||||
|
|
||||||
import { packageInfo as transportInfo } from '@polkadot/hw-ledger-transports/packageInfo';
|
import { packageInfo as transportInfo } from '@polkadot/hw-ledger-transports/packageInfo';
|
||||||
|
|||||||
@@ -1,4 +1,4 @@
|
|||||||
// Copyright 2017-2022 @polkadot/hw-ledger authors & contributors
|
// Copyright 2017-2023 @polkadot/hw-ledger authors & contributors
|
||||||
// SPDX-License-Identifier: Apache-2.0
|
// SPDX-License-Identifier: Apache-2.0
|
||||||
|
|
||||||
// Do not edit, auto-generated by @polkadot/dev
|
// Do not edit, auto-generated by @polkadot/dev
|
||||||
|
|||||||
@@ -1,4 +1,4 @@
|
|||||||
// Copyright 2017-2022 @polkadot/hw-ledger authors & contributors
|
// Copyright 2017-2023 @polkadot/hw-ledger authors & contributors
|
||||||
// SPDX-License-Identifier: Apache-2.0
|
// SPDX-License-Identifier: Apache-2.0
|
||||||
|
|
||||||
import './detectPackage';
|
import './detectPackage';
|
||||||
|
|||||||
@@ -0,0 +1,4 @@
|
|||||||
|
// Copyright 2017-2023 @polkadot/hw-ledger authors & contributors
|
||||||
|
// SPDX-License-Identifier: Apache-2.0
|
||||||
|
|
||||||
|
export * from './index';
|
||||||
@@ -1,6 +1,6 @@
|
|||||||
// Copyright 2017-2022 @polkadot/hw-ledger authors & contributors
|
// Copyright 2017-2023 @polkadot/hw-ledger authors & contributors
|
||||||
// SPDX-License-Identifier: Apache-2.0
|
// SPDX-License-Identifier: Apache-2.0
|
||||||
|
|
||||||
// Do not edit, auto-generated by @polkadot/dev
|
// Do not edit, auto-generated by @polkadot/dev
|
||||||
|
|
||||||
export const packageInfo = { name: '@polkadot/hw-ledger', path: 'auto', type: 'auto', version: '8.7.1' };
|
export const packageInfo = { name: '@polkadot/hw-ledger', path: 'auto', type: 'auto', version: '10.2.2' };
|
||||||
|
|||||||
@@ -1,4 +1,4 @@
|
|||||||
// Copyright 2017-2022 @polkadot/hw-ledger authors & contributors
|
// Copyright 2017-2023 @polkadot/hw-ledger authors & contributors
|
||||||
// SPDX-License-Identifier: Apache-2.0
|
// SPDX-License-Identifier: Apache-2.0
|
||||||
|
|
||||||
import type { HexString } from '@polkadot/util/types';
|
import type { HexString } from '@polkadot/util/types';
|
||||||
@@ -6,22 +6,31 @@ import type { HexString } from '@polkadot/util/types';
|
|||||||
export type LedgerTypes = 'hid' | 'u2f' | 'webusb';
|
export type LedgerTypes = 'hid' | 'u2f' | 'webusb';
|
||||||
|
|
||||||
export interface AccountOptions {
|
export interface AccountOptions {
|
||||||
|
/** The index of the account */
|
||||||
account: number;
|
account: number;
|
||||||
|
/** The index of the address */
|
||||||
addressIndex: number;
|
addressIndex: number;
|
||||||
|
/** The change to apply */
|
||||||
change: number;
|
change: number;
|
||||||
}
|
}
|
||||||
|
|
||||||
export interface LedgerAddress {
|
export interface LedgerAddress {
|
||||||
|
/** The ss58 encoded address */
|
||||||
address: string;
|
address: string;
|
||||||
publicKey: string;
|
/** The hex-encoded publicKey */
|
||||||
|
publicKey: HexString;
|
||||||
}
|
}
|
||||||
|
|
||||||
export interface LedgerSignature {
|
export interface LedgerSignature {
|
||||||
|
/** A hex-encoded signature, as generated by the device */
|
||||||
signature: HexString;
|
signature: HexString;
|
||||||
}
|
}
|
||||||
|
|
||||||
export interface LedgerVersion {
|
export interface LedgerVersion {
|
||||||
|
/** Indicator flag for locked status */
|
||||||
isLocked: boolean;
|
isLocked: boolean;
|
||||||
|
/** Indicator flag for testmode status */
|
||||||
isTestMode: boolean;
|
isTestMode: boolean;
|
||||||
version: [number, number, number];
|
/** The software version for this device */
|
||||||
|
version: [major: number, minor: number, patch: number];
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -20,15 +20,15 @@
|
|||||||
"./detectPackage.cjs"
|
"./detectPackage.cjs"
|
||||||
],
|
],
|
||||||
"type": "module",
|
"type": "module",
|
||||||
"version": "8.7.1",
|
"version": "10.2.2",
|
||||||
"main": "index.js",
|
"main": "index.js",
|
||||||
"dependencies": {
|
"dependencies": {
|
||||||
"@babel/runtime": "^7.17.8",
|
"@babel/runtime": "^7.20.7",
|
||||||
"@polkadot/util": "8.7.1",
|
"@polkadot/util": "10.2.2",
|
||||||
"@polkadot/util-crypto": "8.7.1"
|
"@polkadot/util-crypto": "10.2.2"
|
||||||
},
|
},
|
||||||
"peerDependencies": {
|
"peerDependencies": {
|
||||||
"@polkadot/util": "8.7.1",
|
"@polkadot/util": "10.2.2",
|
||||||
"@polkadot/util-crypto": "8.7.1"
|
"@polkadot/util-crypto": "10.2.2"
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -1,8 +1,9 @@
|
|||||||
// Copyright 2017-2022 @polkadot/keyring authors & contributors
|
// Copyright 2017-2023 @polkadot/keyring authors & contributors
|
||||||
// SPDX-License-Identifier: Apache-2.0
|
// SPDX-License-Identifier: Apache-2.0
|
||||||
|
|
||||||
import { Keyring } from './keyring';
|
import { Keyring } from './keyring';
|
||||||
|
|
||||||
|
// eslint-disable-next-line deprecation/deprecation
|
||||||
export { decodeAddress, encodeAddress, setSS58Format } from '@polkadot/util-crypto';
|
export { decodeAddress, encodeAddress, setSS58Format } from '@polkadot/util-crypto';
|
||||||
|
|
||||||
export * from './defaults';
|
export * from './defaults';
|
||||||
|
|||||||
@@ -1,4 +1,4 @@
|
|||||||
// Copyright 2017-2022 @polkadot/keyring authors & contributors
|
// Copyright 2017-2023 @polkadot/keyring authors & contributors
|
||||||
// SPDX-License-Identifier: Apache-2.0
|
// SPDX-License-Identifier: Apache-2.0
|
||||||
|
|
||||||
// default substrate dev phrase
|
// default substrate dev phrase
|
||||||
|
|||||||
@@ -1,4 +1,4 @@
|
|||||||
// Copyright 2017-2022 @polkadot/keyring authors & contributors
|
// Copyright 2017-2023 @polkadot/keyring authors & contributors
|
||||||
// SPDX-License-Identifier: Apache-2.0
|
// SPDX-License-Identifier: Apache-2.0
|
||||||
|
|
||||||
import { packageInfo as utilInfo } from '@polkadot/util/packageInfo';
|
import { packageInfo as utilInfo } from '@polkadot/util/packageInfo';
|
||||||
|
|||||||
@@ -1,4 +1,4 @@
|
|||||||
// Copyright 2017-2022 @polkadot/keyring authors & contributors
|
// Copyright 2017-2023 @polkadot/keyring authors & contributors
|
||||||
// SPDX-License-Identifier: Apache-2.0
|
// SPDX-License-Identifier: Apache-2.0
|
||||||
|
|
||||||
// Do not edit, auto-generated by @polkadot/dev
|
// Do not edit, auto-generated by @polkadot/dev
|
||||||
|
|||||||
@@ -1,4 +1,4 @@
|
|||||||
// Copyright 2017-2022 @polkadot/keyring authors & contributors
|
// Copyright 2017-2023 @polkadot/keyring authors & contributors
|
||||||
// SPDX-License-Identifier: Apache-2.0
|
// SPDX-License-Identifier: Apache-2.0
|
||||||
|
|
||||||
import type { KeyringPair$Json } from './types';
|
import type { KeyringPair$Json } from './types';
|
||||||
@@ -48,6 +48,7 @@ describe('keypair', (): void => {
|
|||||||
});
|
});
|
||||||
|
|
||||||
it('adds from a mnemonic, with correct ss58', (): void => {
|
it('adds from a mnemonic, with correct ss58', (): void => {
|
||||||
|
// eslint-disable-next-line deprecation/deprecation
|
||||||
setSS58Format(20); // this would not be used
|
setSS58Format(20); // this would not be used
|
||||||
keyring.setSS58Format(2); // this would be used
|
keyring.setSS58Format(2); // this would be used
|
||||||
|
|
||||||
|
|||||||
@@ -1,4 +1,4 @@
|
|||||||
// Copyright 2017-2022 @polkadot/keyring authors & contributors
|
// Copyright 2017-2023 @polkadot/keyring authors & contributors
|
||||||
// SPDX-License-Identifier: Apache-2.0
|
// SPDX-License-Identifier: Apache-2.0
|
||||||
|
|
||||||
import './detectPackage';
|
import './detectPackage';
|
||||||
|
|||||||
@@ -1,10 +1,10 @@
|
|||||||
// Copyright 2017-2022 @polkadot/keyring authors & contributors
|
// Copyright 2017-2023 @polkadot/keyring authors & contributors
|
||||||
// SPDX-License-Identifier: Apache-2.0
|
// SPDX-License-Identifier: Apache-2.0
|
||||||
|
|
||||||
import type { EncryptedJsonEncoding, Keypair, KeypairType } from '@polkadot/util-crypto/types';
|
import type { EncryptedJsonEncoding, Keypair, KeypairType } from '@polkadot/util-crypto/types';
|
||||||
import type { KeyringInstance, KeyringOptions, KeyringPair, KeyringPair$Json, KeyringPair$Meta } from './types';
|
import type { KeyringInstance, KeyringOptions, KeyringPair, KeyringPair$Json, KeyringPair$Meta } from './types';
|
||||||
|
|
||||||
import { assert, hexToU8a, isHex, isUndefined, stringToU8a } from '@polkadot/util';
|
import { hexToU8a, isHex, stringToU8a } from '@polkadot/util';
|
||||||
import { base64Decode, decodeAddress, ed25519PairFromSeed as ed25519FromSeed, encodeAddress, ethereumEncode, hdEthereum, keyExtractSuri, keyFromPath, mnemonicToLegacySeed, mnemonicToMiniSecret, secp256k1PairFromSeed as secp256k1FromSeed, sr25519PairFromSeed as sr25519FromSeed } from '@polkadot/util-crypto';
|
import { base64Decode, decodeAddress, ed25519PairFromSeed as ed25519FromSeed, encodeAddress, ethereumEncode, hdEthereum, keyExtractSuri, keyFromPath, mnemonicToLegacySeed, mnemonicToMiniSecret, secp256k1PairFromSeed as secp256k1FromSeed, sr25519PairFromSeed as sr25519FromSeed } from '@polkadot/util-crypto';
|
||||||
|
|
||||||
import { DEV_PHRASE } from './defaults';
|
import { DEV_PHRASE } from './defaults';
|
||||||
@@ -50,7 +50,9 @@ export class Keyring implements KeyringInstance {
|
|||||||
constructor (options: KeyringOptions = {}) {
|
constructor (options: KeyringOptions = {}) {
|
||||||
options.type = options.type || 'ed25519';
|
options.type = options.type || 'ed25519';
|
||||||
|
|
||||||
assert(['ecdsa', 'ethereum', 'ed25519', 'sr25519'].includes(options.type || 'undefined'), () => `Expected a keyring type of either 'ed25519', 'sr25519', 'ethereum' or 'ecdsa', found '${options.type || 'unknown'}`);
|
if (!['ecdsa', 'ethereum', 'ed25519', 'sr25519'].includes(options.type || 'undefined')) {
|
||||||
|
throw new Error(`Expected a keyring type of either 'ed25519', 'sr25519', 'ethereum' or 'ecdsa', found '${options.type || 'unknown'}`);
|
||||||
|
}
|
||||||
|
|
||||||
this.#pairs = new Pairs();
|
this.#pairs = new Pairs();
|
||||||
this.#ss58 = options.ss58Format;
|
this.#ss58 = options.ss58Format;
|
||||||
@@ -162,7 +164,9 @@ export class Keyring implements KeyringInstance {
|
|||||||
* @description Creates a pair from a JSON keyfile
|
* @description Creates a pair from a JSON keyfile
|
||||||
*/
|
*/
|
||||||
public createFromJson ({ address, encoded, encoding: { content, type, version }, meta }: KeyringPair$Json, ignoreChecksum?: boolean): KeyringPair {
|
public createFromJson ({ address, encoded, encoding: { content, type, version }, meta }: KeyringPair$Json, ignoreChecksum?: boolean): KeyringPair {
|
||||||
assert(version !== '3' || content[0] === 'pkcs8', () => `Unable to decode non-pkcs8 type, [${content.join(',')}] found}`);
|
if (version === '3' && content[0] !== 'pkcs8') {
|
||||||
|
throw new Error(`Unable to decode non-pkcs8 type, [${content.join(',')}] found}`);
|
||||||
|
}
|
||||||
|
|
||||||
const cryptoType = version === '0' || !Array.isArray(content)
|
const cryptoType = version === '0' || !Array.isArray(content)
|
||||||
? this.type
|
? this.type
|
||||||
@@ -171,7 +175,9 @@ export class Keyring implements KeyringInstance {
|
|||||||
? [type]
|
? [type]
|
||||||
: type;
|
: type;
|
||||||
|
|
||||||
assert(['ed25519', 'sr25519', 'ecdsa', 'ethereum'].includes(cryptoType), () => `Unknown crypto type ${cryptoType}`);
|
if (!['ed25519', 'sr25519', 'ecdsa', 'ethereum'].includes(cryptoType)) {
|
||||||
|
throw new Error(`Unknown crypto type ${cryptoType}`);
|
||||||
|
}
|
||||||
|
|
||||||
// Here the address and publicKey are 32 bytes and isomorphic. This is why the address field needs to be the public key for ethereum type pairs
|
// Here the address and publicKey are 32 bytes and isomorphic. This is why the address field needs to be the public key for ethereum type pairs
|
||||||
const publicKey = isHex(address)
|
const publicKey = isHex(address)
|
||||||
@@ -216,7 +222,9 @@ export class Keyring implements KeyringInstance {
|
|||||||
? mnemonicToLegacySeed(phrase, '', false, 64)
|
? mnemonicToLegacySeed(phrase, '', false, 64)
|
||||||
: mnemonicToMiniSecret(phrase, password);
|
: mnemonicToMiniSecret(phrase, password);
|
||||||
} else {
|
} else {
|
||||||
assert(phrase.length <= 32, 'specified phrase is not a valid mnemonic and is invalid as a raw seed at > 32 bytes');
|
if (phrase.length > 32) {
|
||||||
|
throw new Error('specified phrase is not a valid mnemonic and is invalid as a raw seed at > 32 bytes');
|
||||||
|
}
|
||||||
|
|
||||||
seed = stringToU8a(phrase.padEnd(32));
|
seed = stringToU8a(phrase.padEnd(32));
|
||||||
}
|
}
|
||||||
@@ -238,7 +246,7 @@ export class Keyring implements KeyringInstance {
|
|||||||
public encodeAddress = (address: Uint8Array | string, ss58Format?: number): string => {
|
public encodeAddress = (address: Uint8Array | string, ss58Format?: number): string => {
|
||||||
return this.type === 'ethereum'
|
return this.type === 'ethereum'
|
||||||
? ethereumEncode(address)
|
? ethereumEncode(address)
|
||||||
: encodeAddress(address, isUndefined(ss58Format) ? this.#ss58 : ss58Format);
|
: encodeAddress(address, ss58Format === undefined ? this.#ss58 : ss58Format);
|
||||||
};
|
};
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
|||||||
@@ -0,0 +1,4 @@
|
|||||||
|
// Copyright 2017-2023 @polkadot/keyring authors & contributors
|
||||||
|
// SPDX-License-Identifier: Apache-2.0
|
||||||
|
|
||||||
|
export * from './index';
|
||||||
@@ -1,6 +1,6 @@
|
|||||||
// Copyright 2017-2022 @polkadot/keyring authors & contributors
|
// Copyright 2017-2023 @polkadot/keyring authors & contributors
|
||||||
// SPDX-License-Identifier: Apache-2.0
|
// SPDX-License-Identifier: Apache-2.0
|
||||||
|
|
||||||
// Do not edit, auto-generated by @polkadot/dev
|
// Do not edit, auto-generated by @polkadot/dev
|
||||||
|
|
||||||
export const packageInfo = { name: '@polkadot/keyring', path: 'auto', type: 'auto', version: '8.7.1' };
|
export const packageInfo = { name: '@polkadot/keyring', path: 'auto', type: 'auto', version: '10.2.2' };
|
||||||
|
|||||||
@@ -1,4 +1,4 @@
|
|||||||
// Copyright 2017-2022 @polkadot/keyring authors & contributors
|
// Copyright 2017-2023 @polkadot/keyring authors & contributors
|
||||||
// SPDX-License-Identifier: Apache-2.0
|
// SPDX-License-Identifier: Apache-2.0
|
||||||
|
|
||||||
import { createTestPairs } from '../testingPairs';
|
import { createTestPairs } from '../testingPairs';
|
||||||
|
|||||||
@@ -1,10 +1,10 @@
|
|||||||
// Copyright 2017-2022 @polkadot/keyring authors & contributors
|
// Copyright 2017-2023 @polkadot/keyring authors & contributors
|
||||||
// SPDX-License-Identifier: Apache-2.0
|
// SPDX-License-Identifier: Apache-2.0
|
||||||
|
|
||||||
import type { EncryptedJsonEncoding } from '@polkadot/util-crypto/types';
|
import type { EncryptedJsonEncoding } from '@polkadot/util-crypto/types';
|
||||||
import type { PairInfo } from './types';
|
import type { PairInfo } from './types';
|
||||||
|
|
||||||
import { assert, isUndefined, u8aEq } from '@polkadot/util';
|
import { u8aEq } from '@polkadot/util';
|
||||||
import { jsonDecryptData } from '@polkadot/util-crypto';
|
import { jsonDecryptData } from '@polkadot/util-crypto';
|
||||||
|
|
||||||
import { PKCS8_DIVIDER, PKCS8_HEADER, PUB_LENGTH, SEC_LENGTH, SEED_LENGTH } from './defaults';
|
import { PKCS8_DIVIDER, PKCS8_HEADER, PUB_LENGTH, SEC_LENGTH, SEED_LENGTH } from './defaults';
|
||||||
@@ -16,13 +16,15 @@ type DecodeResult = PairInfo & {
|
|||||||
};
|
};
|
||||||
|
|
||||||
export function decodePair (passphrase?: string, encrypted?: Uint8Array | null, _encType?: EncryptedJsonEncoding | EncryptedJsonEncoding[]): DecodeResult {
|
export function decodePair (passphrase?: string, encrypted?: Uint8Array | null, _encType?: EncryptedJsonEncoding | EncryptedJsonEncoding[]): DecodeResult {
|
||||||
const encType = Array.isArray(_encType) || isUndefined(_encType)
|
const encType = Array.isArray(_encType) || _encType === undefined
|
||||||
? _encType
|
? _encType
|
||||||
: [_encType];
|
: [_encType];
|
||||||
const decrypted = jsonDecryptData(encrypted, passphrase, encType);
|
const decrypted = jsonDecryptData(encrypted, passphrase, encType);
|
||||||
const header = decrypted.subarray(0, PKCS8_HEADER.length);
|
const header = decrypted.subarray(0, PKCS8_HEADER.length);
|
||||||
|
|
||||||
assert(u8aEq(header, PKCS8_HEADER), 'Invalid Pkcs8 header found in body');
|
if (!u8aEq(header, PKCS8_HEADER)) {
|
||||||
|
throw new Error('Invalid Pkcs8 header found in body');
|
||||||
|
}
|
||||||
|
|
||||||
let secretKey = decrypted.subarray(SEED_OFFSET, SEED_OFFSET + SEC_LENGTH);
|
let secretKey = decrypted.subarray(SEED_OFFSET, SEED_OFFSET + SEC_LENGTH);
|
||||||
let divOffset = SEED_OFFSET + SEC_LENGTH;
|
let divOffset = SEED_OFFSET + SEC_LENGTH;
|
||||||
@@ -34,7 +36,9 @@ export function decodePair (passphrase?: string, encrypted?: Uint8Array | null,
|
|||||||
secretKey = decrypted.subarray(SEED_OFFSET, divOffset);
|
secretKey = decrypted.subarray(SEED_OFFSET, divOffset);
|
||||||
divider = decrypted.subarray(divOffset, divOffset + PKCS8_DIVIDER.length);
|
divider = decrypted.subarray(divOffset, divOffset + PKCS8_DIVIDER.length);
|
||||||
|
|
||||||
assert(u8aEq(divider, PKCS8_DIVIDER), 'Invalid Pkcs8 divider found in body');
|
if (!u8aEq(divider, PKCS8_DIVIDER)) {
|
||||||
|
throw new Error('Invalid Pkcs8 divider found in body');
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
const pubOffset = divOffset + PKCS8_DIVIDER.length;
|
const pubOffset = divOffset + PKCS8_DIVIDER.length;
|
||||||
|
|||||||
@@ -1,4 +1,4 @@
|
|||||||
// Copyright 2017-2022 @polkadot/keyring authors & contributors
|
// Copyright 2017-2023 @polkadot/keyring authors & contributors
|
||||||
// SPDX-License-Identifier: Apache-2.0
|
// SPDX-License-Identifier: Apache-2.0
|
||||||
|
|
||||||
export const PKCS8_DIVIDER = new Uint8Array([161, 35, 3, 33, 0]);
|
export const PKCS8_DIVIDER = new Uint8Array([161, 35, 3, 33, 0]);
|
||||||
|
|||||||
@@ -1,4 +1,4 @@
|
|||||||
// Copyright 2017-2022 @polkadot/keyring authors & contributors
|
// Copyright 2017-2023 @polkadot/keyring authors & contributors
|
||||||
// SPDX-License-Identifier: Apache-2.0
|
// SPDX-License-Identifier: Apache-2.0
|
||||||
|
|
||||||
import { NONCE_LENGTH, SCRYPT_LENGTH } from '@polkadot/util-crypto/json/constants';
|
import { NONCE_LENGTH, SCRYPT_LENGTH } from '@polkadot/util-crypto/json/constants';
|
||||||
|
|||||||
@@ -1,15 +1,17 @@
|
|||||||
// Copyright 2017-2022 @polkadot/keyring authors & contributors
|
// Copyright 2017-2023 @polkadot/keyring authors & contributors
|
||||||
// SPDX-License-Identifier: Apache-2.0
|
// SPDX-License-Identifier: Apache-2.0
|
||||||
|
|
||||||
import type { PairInfo } from './types';
|
import type { PairInfo } from './types';
|
||||||
|
|
||||||
import { assert, u8aConcat } from '@polkadot/util';
|
import { u8aConcat } from '@polkadot/util';
|
||||||
import { naclEncrypt, scryptEncode, scryptToU8a } from '@polkadot/util-crypto';
|
import { naclEncrypt, scryptEncode, scryptToU8a } from '@polkadot/util-crypto';
|
||||||
|
|
||||||
import { PKCS8_DIVIDER, PKCS8_HEADER } from './defaults';
|
import { PKCS8_DIVIDER, PKCS8_HEADER } from './defaults';
|
||||||
|
|
||||||
export function encodePair ({ publicKey, secretKey }: PairInfo, passphrase?: string): Uint8Array {
|
export function encodePair ({ publicKey, secretKey }: PairInfo, passphrase?: string): Uint8Array {
|
||||||
assert(secretKey, 'Expected a valid secretKey to be passed to encode');
|
if (!secretKey) {
|
||||||
|
throw new Error('Expected a valid secretKey to be passed to encode');
|
||||||
|
}
|
||||||
|
|
||||||
const encoded = u8aConcat(
|
const encoded = u8aConcat(
|
||||||
PKCS8_HEADER,
|
PKCS8_HEADER,
|
||||||
|
|||||||
@@ -1,4 +1,4 @@
|
|||||||
// Copyright 2017-2022 @polkadot/keyring authors & contributors
|
// Copyright 2017-2023 @polkadot/keyring authors & contributors
|
||||||
// SPDX-License-Identifier: Apache-2.0
|
// SPDX-License-Identifier: Apache-2.0
|
||||||
|
|
||||||
import { hexToU8a, u8aToHex } from '@polkadot/util';
|
import { hexToU8a, u8aToHex } from '@polkadot/util';
|
||||||
@@ -198,10 +198,12 @@ describe('pair', (): void => {
|
|||||||
it('allows encoding of address with different prefixes', (): void => {
|
it('allows encoding of address with different prefixes', (): void => {
|
||||||
expect(keyring.alice.address).toEqual('5GoKvZWG5ZPYL1WUovuHW3zJBWBP5eT8CbqjdRY4Q6iMaQua');
|
expect(keyring.alice.address).toEqual('5GoKvZWG5ZPYL1WUovuHW3zJBWBP5eT8CbqjdRY4Q6iMaQua');
|
||||||
|
|
||||||
|
// eslint-disable-next-line deprecation/deprecation
|
||||||
setSS58Format(255);
|
setSS58Format(255);
|
||||||
|
|
||||||
expect(keyring.alice.address).toEqual('yGHU8YKprxHbHdEv7oUK4rzMZXtsdhcXVG2CAMyC9WhzhjH2k');
|
expect(keyring.alice.address).toEqual('yGHU8YKprxHbHdEv7oUK4rzMZXtsdhcXVG2CAMyC9WhzhjH2k');
|
||||||
|
|
||||||
|
// eslint-disable-next-line deprecation/deprecation
|
||||||
setSS58Format(42);
|
setSS58Format(42);
|
||||||
});
|
});
|
||||||
|
|
||||||
@@ -217,11 +219,11 @@ describe('pair', (): void => {
|
|||||||
});
|
});
|
||||||
|
|
||||||
it('allows derivation on the pair', (): void => {
|
it('allows derivation on the pair', (): void => {
|
||||||
const alice = createPair({ toSS58, type: 'sr25519' }, { publicKey: PAIRSSR25519[0].publicKey, secretKey: PAIRSSR25519[0].secretKey }, {});
|
const alice = createPair({ toSS58, type: 'sr25519' }, { publicKey: hexToU8a(PAIRSSR25519[0].p), secretKey: hexToU8a(PAIRSSR25519[0].s) }, {});
|
||||||
const stash = alice.derive('//stash');
|
const stash = alice.derive('//stash');
|
||||||
const soft = alice.derive('//funding/0');
|
const soft = alice.derive('//funding/0');
|
||||||
|
|
||||||
expect(stash.publicKey).toEqual(PAIRSSR25519[1].publicKey);
|
expect(stash.publicKey).toEqual(hexToU8a(PAIRSSR25519[1].p));
|
||||||
expect(soft.address).toEqual('5ECQNn7UueWHPFda5qUi4fTmTtyCnPvGnuoyVVSj5CboJh9J');
|
expect(soft.address).toEqual('5ECQNn7UueWHPFda5qUi4fTmTtyCnPvGnuoyVVSj5CboJh9J');
|
||||||
});
|
});
|
||||||
|
|
||||||
|
|||||||
@@ -1,4 +1,4 @@
|
|||||||
// Copyright 2017-2022 @polkadot/keyring authors & contributors
|
// Copyright 2017-2023 @polkadot/keyring authors & contributors
|
||||||
// SPDX-License-Identifier: Apache-2.0
|
// SPDX-License-Identifier: Apache-2.0
|
||||||
|
|
||||||
import type { HexString } from '@polkadot/util/types';
|
import type { HexString } from '@polkadot/util/types';
|
||||||
@@ -6,7 +6,7 @@ import type { EncryptedJsonEncoding, Keypair, KeypairType } from '@polkadot/util
|
|||||||
import type { KeyringPair, KeyringPair$Json, KeyringPair$Meta, SignOptions } from '../types';
|
import type { KeyringPair, KeyringPair$Json, KeyringPair$Meta, SignOptions } from '../types';
|
||||||
import type { PairInfo } from './types';
|
import type { PairInfo } from './types';
|
||||||
|
|
||||||
import { assert, objectSpread, u8aConcat, u8aEmpty, u8aEq, u8aToHex, u8aToU8a } from '@polkadot/util';
|
import { objectSpread, u8aConcat, u8aEmpty, u8aEq, u8aToHex, u8aToU8a } from '@polkadot/util';
|
||||||
import { blake2AsU8a, convertPublicKeyToCurve25519, convertSecretKeyToCurve25519, ed25519PairFromSeed as ed25519FromSeed, ed25519Sign, ethereumEncode, keccakAsU8a, keyExtractPath, keyFromPath, naclOpen, naclSeal, secp256k1Compress, secp256k1Expand, secp256k1PairFromSeed as secp256k1FromSeed, secp256k1Sign, signatureVerify, sr25519PairFromSeed as sr25519FromSeed, sr25519Sign, sr25519VrfSign, sr25519VrfVerify } from '@polkadot/util-crypto';
|
import { blake2AsU8a, convertPublicKeyToCurve25519, convertSecretKeyToCurve25519, ed25519PairFromSeed as ed25519FromSeed, ed25519Sign, ethereumEncode, keccakAsU8a, keyExtractPath, keyFromPath, naclOpen, naclSeal, secp256k1Compress, secp256k1Expand, secp256k1PairFromSeed as secp256k1FromSeed, secp256k1Sign, signatureVerify, sr25519PairFromSeed as sr25519FromSeed, sr25519Sign, sr25519VrfSign, sr25519VrfVerify } from '@polkadot/util-crypto';
|
||||||
|
|
||||||
import { decodePair } from './decode';
|
import { decodePair } from './decode';
|
||||||
@@ -145,8 +145,11 @@ export function createPair ({ toSS58, type }: Setup, { publicKey, secretKey }: P
|
|||||||
// eslint-disable-next-line sort-keys
|
// eslint-disable-next-line sort-keys
|
||||||
decodePkcs8,
|
decodePkcs8,
|
||||||
decryptMessage: (encryptedMessageWithNonce: HexString | string | Uint8Array, senderPublicKey: HexString | string | Uint8Array): Uint8Array | null => {
|
decryptMessage: (encryptedMessageWithNonce: HexString | string | Uint8Array, senderPublicKey: HexString | string | Uint8Array): Uint8Array | null => {
|
||||||
assert(!isLocked(secretKey), 'Cannot encrypt with a locked key pair');
|
if (isLocked(secretKey)) {
|
||||||
assert(!['ecdsa', 'ethereum'].includes(type), 'Secp256k1 not supported yet');
|
throw new Error('Cannot encrypt with a locked key pair');
|
||||||
|
} else if (['ecdsa', 'ethereum'].includes(type)) {
|
||||||
|
throw new Error('Secp256k1 not supported yet');
|
||||||
|
}
|
||||||
|
|
||||||
const messageU8a = u8aToU8a(encryptedMessageWithNonce);
|
const messageU8a = u8aToU8a(encryptedMessageWithNonce);
|
||||||
|
|
||||||
@@ -158,8 +161,11 @@ export function createPair ({ toSS58, type }: Setup, { publicKey, secretKey }: P
|
|||||||
);
|
);
|
||||||
},
|
},
|
||||||
derive: (suri: string, meta?: KeyringPair$Meta): KeyringPair => {
|
derive: (suri: string, meta?: KeyringPair$Meta): KeyringPair => {
|
||||||
assert(type !== 'ethereum', 'Unable to derive on this keypair');
|
if (type === 'ethereum') {
|
||||||
assert(!isLocked(secretKey), 'Cannot derive on a locked keypair');
|
throw new Error('Unable to derive on this keypair');
|
||||||
|
} else if (isLocked(secretKey)) {
|
||||||
|
throw new Error('Cannot derive on a locked keypair');
|
||||||
|
}
|
||||||
|
|
||||||
const { path } = keyExtractPath(suri);
|
const { path } = keyExtractPath(suri);
|
||||||
const derived = keyFromPath({ publicKey, secretKey }, path, type);
|
const derived = keyFromPath({ publicKey, secretKey }, path, type);
|
||||||
@@ -170,8 +176,11 @@ export function createPair ({ toSS58, type }: Setup, { publicKey, secretKey }: P
|
|||||||
return recode(passphrase);
|
return recode(passphrase);
|
||||||
},
|
},
|
||||||
encryptMessage: (message: HexString | string | Uint8Array, recipientPublicKey: HexString | string | Uint8Array, nonceIn?: Uint8Array): Uint8Array => {
|
encryptMessage: (message: HexString | string | Uint8Array, recipientPublicKey: HexString | string | Uint8Array, nonceIn?: Uint8Array): Uint8Array => {
|
||||||
assert(!isLocked(secretKey), 'Cannot encrypt with a locked key pair');
|
if (isLocked(secretKey)) {
|
||||||
assert(!['ecdsa', 'ethereum'].includes(type), 'Secp256k1 not supported yet');
|
throw new Error('Cannot encrypt with a locked key pair');
|
||||||
|
} else if (['ecdsa', 'ethereum'].includes(type)) {
|
||||||
|
throw new Error('Secp256k1 not supported yet');
|
||||||
|
}
|
||||||
|
|
||||||
const { nonce, sealed } = naclSeal(u8aToU8a(message), convertSecretKeyToCurve25519(secretKey), convertPublicKeyToCurve25519(u8aToU8a(recipientPublicKey)), nonceIn);
|
const { nonce, sealed } = naclSeal(u8aToU8a(message), convertSecretKeyToCurve25519(secretKey), convertPublicKeyToCurve25519(u8aToU8a(recipientPublicKey)), nonceIn);
|
||||||
|
|
||||||
@@ -184,7 +193,9 @@ export function createPair ({ toSS58, type }: Setup, { publicKey, secretKey }: P
|
|||||||
meta = objectSpread({}, meta, additional);
|
meta = objectSpread({}, meta, additional);
|
||||||
},
|
},
|
||||||
sign: (message: HexString | string | Uint8Array, options: SignOptions = {}): Uint8Array => {
|
sign: (message: HexString | string | Uint8Array, options: SignOptions = {}): Uint8Array => {
|
||||||
assert(!isLocked(secretKey), 'Cannot sign with a locked key pair');
|
if (isLocked(secretKey)) {
|
||||||
|
throw new Error('Cannot sign with a locked key pair');
|
||||||
|
}
|
||||||
|
|
||||||
return u8aConcat(
|
return u8aConcat(
|
||||||
options.withType
|
options.withType
|
||||||
@@ -212,7 +223,9 @@ export function createPair ({ toSS58, type }: Setup, { publicKey, secretKey }: P
|
|||||||
return signatureVerify(message, signature, TYPE_ADDRESS[type](u8aToU8a(signerPublic))).isValid;
|
return signatureVerify(message, signature, TYPE_ADDRESS[type](u8aToU8a(signerPublic))).isValid;
|
||||||
},
|
},
|
||||||
vrfSign: (message: HexString | string | Uint8Array, context?: HexString | string | Uint8Array, extra?: string | Uint8Array): Uint8Array => {
|
vrfSign: (message: HexString | string | Uint8Array, context?: HexString | string | Uint8Array, extra?: string | Uint8Array): Uint8Array => {
|
||||||
assert(!isLocked(secretKey), 'Cannot sign with a locked key pair');
|
if (isLocked(secretKey)) {
|
||||||
|
throw new Error('Cannot sign with a locked key pair');
|
||||||
|
}
|
||||||
|
|
||||||
if (type === 'sr25519') {
|
if (type === 'sr25519') {
|
||||||
return sr25519VrfSign(message, { secretKey }, context, extra);
|
return sr25519VrfSign(message, { secretKey }, context, extra);
|
||||||
|
|||||||
@@ -1,12 +1,13 @@
|
|||||||
// Copyright 2017-2022 @polkadot/keyring authors & contributors
|
// Copyright 2017-2023 @polkadot/keyring authors & contributors
|
||||||
// SPDX-License-Identifier: Apache-2.0
|
// SPDX-License-Identifier: Apache-2.0
|
||||||
|
|
||||||
import type { KeyringPair, KeyringPair$Json, KeyringPair$Meta } from '../types';
|
import type { KeyringPair, KeyringPair$Json, KeyringPair$Meta } from '../types';
|
||||||
|
|
||||||
import { encodeAddress } from '@polkadot/util-crypto';
|
// empty publicKey
|
||||||
|
|
||||||
const publicKey = new Uint8Array(32);
|
const publicKey = new Uint8Array(32);
|
||||||
const address = encodeAddress(publicKey);
|
|
||||||
|
// pre-computed via encodeAddress(publicKey)
|
||||||
|
const address = '5C4hrfjw9DjXZTzV3MwzrrAr9P1MJhSrvWGWqi1eSuyUpnhM';
|
||||||
|
|
||||||
const meta = {
|
const meta = {
|
||||||
isTesting: true,
|
isTesting: true,
|
||||||
|
|||||||
@@ -1,4 +1,4 @@
|
|||||||
// Copyright 2017-2022 @polkadot/keyring authors & contributors
|
// Copyright 2017-2023 @polkadot/keyring authors & contributors
|
||||||
// SPDX-License-Identifier: Apache-2.0
|
// SPDX-License-Identifier: Apache-2.0
|
||||||
|
|
||||||
import { createTestPairs } from '../testingPairs';
|
import { createTestPairs } from '../testingPairs';
|
||||||
|
|||||||
@@ -1,4 +1,4 @@
|
|||||||
// Copyright 2017-2022 @polkadot/keyring authors & contributors
|
// Copyright 2017-2023 @polkadot/keyring authors & contributors
|
||||||
// SPDX-License-Identifier: Apache-2.0
|
// SPDX-License-Identifier: Apache-2.0
|
||||||
|
|
||||||
import type { KeypairType } from '@polkadot/util-crypto/types';
|
import type { KeypairType } from '@polkadot/util-crypto/types';
|
||||||
|
|||||||
@@ -1,4 +1,4 @@
|
|||||||
// Copyright 2017-2022 @polkadot/keyring authors & contributors
|
// Copyright 2017-2023 @polkadot/keyring authors & contributors
|
||||||
// SPDX-License-Identifier: Apache-2.0
|
// SPDX-License-Identifier: Apache-2.0
|
||||||
|
|
||||||
export interface PairInfo {
|
export interface PairInfo {
|
||||||
|
|||||||
@@ -1,4 +1,4 @@
|
|||||||
// Copyright 2017-2022 @polkadot/keyring authors & contributors
|
// Copyright 2017-2023 @polkadot/keyring authors & contributors
|
||||||
// SPDX-License-Identifier: Apache-2.0
|
// SPDX-License-Identifier: Apache-2.0
|
||||||
|
|
||||||
import type { KeyringPair } from '../types';
|
import type { KeyringPair } from '../types';
|
||||||
|
|||||||
@@ -1,10 +1,10 @@
|
|||||||
// Copyright 2017-2022 @polkadot/keyring authors & contributors
|
// Copyright 2017-2023 @polkadot/keyring authors & contributors
|
||||||
// SPDX-License-Identifier: Apache-2.0
|
// SPDX-License-Identifier: Apache-2.0
|
||||||
|
|
||||||
import type { HexString } from '@polkadot/util/types';
|
import type { HexString } from '@polkadot/util/types';
|
||||||
import type { KeyringPair, KeyringPairs } from './types';
|
import type { KeyringPair, KeyringPairs } from './types';
|
||||||
|
|
||||||
import { assert, isHex, isU8a, u8aToHex, u8aToU8a } from '@polkadot/util';
|
import { isHex, isU8a, u8aToHex, u8aToU8a } from '@polkadot/util';
|
||||||
import { decodeAddress } from '@polkadot/util-crypto';
|
import { decodeAddress } from '@polkadot/util-crypto';
|
||||||
|
|
||||||
type KeyringPairMap = Record<string, KeyringPair>;
|
type KeyringPairMap = Record<string, KeyringPair>;
|
||||||
@@ -25,11 +25,13 @@ export class Pairs implements KeyringPairs {
|
|||||||
public get (address: HexString | string | Uint8Array): KeyringPair {
|
public get (address: HexString | string | Uint8Array): KeyringPair {
|
||||||
const pair = this.#map[decodeAddress(address).toString()];
|
const pair = this.#map[decodeAddress(address).toString()];
|
||||||
|
|
||||||
assert(pair, () => `Unable to retrieve keypair '${
|
if (!pair) {
|
||||||
isU8a(address) || isHex(address)
|
throw new Error(`Unable to retrieve keypair '${
|
||||||
? u8aToHex(u8aToU8a(address))
|
isU8a(address) || isHex(address)
|
||||||
: address
|
? u8aToHex(u8aToU8a(address))
|
||||||
}'`);
|
: address
|
||||||
|
}'`);
|
||||||
|
}
|
||||||
|
|
||||||
return pair;
|
return pair;
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -1,4 +1,4 @@
|
|||||||
// Copyright 2017-2022 @polkadot/keyring authors & contributors
|
// Copyright 2017-2023 @polkadot/keyring authors & contributors
|
||||||
// SPDX-License-Identifier: Apache-2.0
|
// SPDX-License-Identifier: Apache-2.0
|
||||||
|
|
||||||
// From https://github.com/paritytech/substrate/wiki/Secret-URI-Test-Vectors
|
// From https://github.com/paritytech/substrate/wiki/Secret-URI-Test-Vectors
|
||||||
|
|||||||
@@ -1,19 +1,20 @@
|
|||||||
// Copyright 2017-2022 @polkadot/keyring authors & contributors
|
// Copyright 2017-2023 @polkadot/keyring authors & contributors
|
||||||
// SPDX-License-Identifier: Apache-2.0
|
// SPDX-License-Identifier: Apache-2.0
|
||||||
|
|
||||||
|
import type { HexString } from '@polkadot/util/types';
|
||||||
|
import type { KeypairType } from '@polkadot/util-crypto/types';
|
||||||
import type { KeyringInstance, KeyringOptions } from './types';
|
import type { KeyringInstance, KeyringOptions } from './types';
|
||||||
|
|
||||||
import { assert, hexToU8a } from '@polkadot/util';
|
import { hexToU8a } from '@polkadot/util';
|
||||||
import { KeypairType } from '@polkadot/util-crypto/types';
|
|
||||||
|
|
||||||
import { Keyring } from './keyring';
|
import { Keyring } from './keyring';
|
||||||
import { createPair } from './pair';
|
import { createPair } from './pair';
|
||||||
|
|
||||||
interface PairDef {
|
interface PairDef {
|
||||||
name?: string;
|
name?: string;
|
||||||
publicKey: Uint8Array;
|
p: HexString;
|
||||||
|
s: HexString;
|
||||||
seed?: string;
|
seed?: string;
|
||||||
secretKey?: Uint8Array;
|
|
||||||
type: KeypairType
|
type: KeypairType
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -23,50 +24,50 @@ interface PairDef {
|
|||||||
// adding the keys when only the keyring is used.
|
// adding the keys when only the keyring is used.
|
||||||
export const PAIRSSR25519: PairDef[] = [
|
export const PAIRSSR25519: PairDef[] = [
|
||||||
{
|
{
|
||||||
publicKey: hexToU8a('0xd43593c715fdd31c61141abd04a99fd6822c8558854ccde39a5684e7a56da27d'),
|
p: '0xd43593c715fdd31c61141abd04a99fd6822c8558854ccde39a5684e7a56da27d',
|
||||||
secretKey: hexToU8a('0x98319d4ff8a9508c4bb0cf0b5a78d760a0b2082c02775e6e82370816fedfff48925a225d97aa00682d6a59b95b18780c10d7032336e88f3442b42361f4a66011'), // nosemgrep
|
s: '0x98319d4ff8a9508c4bb0cf0b5a78d760a0b2082c02775e6e82370816fedfff48925a225d97aa00682d6a59b95b18780c10d7032336e88f3442b42361f4a66011', // nosemgrep
|
||||||
seed: 'Alice',
|
seed: 'Alice',
|
||||||
type: 'sr25519'
|
type: 'sr25519'
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
publicKey: hexToU8a('0xbe5ddb1579b72e84524fc29e78609e3caf42e85aa118ebfe0b0ad404b5bdd25f'),
|
p: '0xbe5ddb1579b72e84524fc29e78609e3caf42e85aa118ebfe0b0ad404b5bdd25f',
|
||||||
secretKey: hexToU8a('0xe8da6c9d810e020f5e3c7f5af2dea314cbeaa0d72bc6421e92c0808a0c584a6046ab28e97c3ffc77fe12b5a4d37e8cd4afbfebbf2391ffc7cb07c0f38c023efd'), // nosemgrep
|
s: '0xe8da6c9d810e020f5e3c7f5af2dea314cbeaa0d72bc6421e92c0808a0c584a6046ab28e97c3ffc77fe12b5a4d37e8cd4afbfebbf2391ffc7cb07c0f38c023efd', // nosemgrep
|
||||||
seed: 'Alice//stash',
|
seed: 'Alice//stash',
|
||||||
type: 'sr25519'
|
type: 'sr25519'
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
publicKey: hexToU8a('0x8eaf04151687736326c9fea17e25fc5287613693c912909cb226aa4794f26a48'),
|
p: '0x8eaf04151687736326c9fea17e25fc5287613693c912909cb226aa4794f26a48',
|
||||||
secretKey: hexToU8a('0x081ff694633e255136bdb456c20a5fc8fed21f8b964c11bb17ff534ce80ebd5941ae88f85d0c1bfc37be41c904e1dfc01de8c8067b0d6d5df25dd1ac0894a325'), // nosemgrep
|
s: '0x081ff694633e255136bdb456c20a5fc8fed21f8b964c11bb17ff534ce80ebd5941ae88f85d0c1bfc37be41c904e1dfc01de8c8067b0d6d5df25dd1ac0894a325', // nosemgrep
|
||||||
seed: 'Bob',
|
seed: 'Bob',
|
||||||
type: 'sr25519'
|
type: 'sr25519'
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
publicKey: hexToU8a('0xfe65717dad0447d715f660a0a58411de509b42e6efb8375f562f58a554d5860e'),
|
p: '0xfe65717dad0447d715f660a0a58411de509b42e6efb8375f562f58a554d5860e',
|
||||||
secretKey: hexToU8a('0xc006507cdfc267a21532394c49ca9b754ca71de21e15a1cdf807c7ceab6d0b6c3ed408d9d35311540dcd54931933e67cf1ea10d46f75408f82b789d9bd212fde'), // nosemgrep
|
s: '0xc006507cdfc267a21532394c49ca9b754ca71de21e15a1cdf807c7ceab6d0b6c3ed408d9d35311540dcd54931933e67cf1ea10d46f75408f82b789d9bd212fde', // nosemgrep
|
||||||
seed: 'Bob//stash',
|
seed: 'Bob//stash',
|
||||||
type: 'sr25519'
|
type: 'sr25519'
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
publicKey: hexToU8a('0x90b5ab205c6974c9ea841be688864633dc9ca8a357843eeacf2314649965fe22'),
|
p: '0x90b5ab205c6974c9ea841be688864633dc9ca8a357843eeacf2314649965fe22',
|
||||||
secretKey: hexToU8a('0xa8f2d83016052e5d6d77b2f6fd5d59418922a09024cda701b3c34369ec43a7668faf12ff39cd4e5d92bb773972f41a7a5279ebc2ed92264bed8f47d344f8f18c'), // nosemgrep
|
s: '0xa8f2d83016052e5d6d77b2f6fd5d59418922a09024cda701b3c34369ec43a7668faf12ff39cd4e5d92bb773972f41a7a5279ebc2ed92264bed8f47d344f8f18c', // nosemgrep
|
||||||
seed: 'Charlie',
|
seed: 'Charlie',
|
||||||
type: 'sr25519'
|
type: 'sr25519'
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
publicKey: hexToU8a('0x306721211d5404bd9da88e0204360a1a9ab8b87c66c1bc2fcdd37f3c2222cc20'),
|
p: '0x306721211d5404bd9da88e0204360a1a9ab8b87c66c1bc2fcdd37f3c2222cc20',
|
||||||
secretKey: hexToU8a('0x20e05482ca4677e0edbc58ae9a3a59f6ed3b1a9484ba17e64d6fe8688b2b7b5d108c4487b9323b98b11fe36cb301b084e920f7b7895536809a6d62a451b25568'), // nosemgrep
|
s: '0x20e05482ca4677e0edbc58ae9a3a59f6ed3b1a9484ba17e64d6fe8688b2b7b5d108c4487b9323b98b11fe36cb301b084e920f7b7895536809a6d62a451b25568', // nosemgrep
|
||||||
seed: 'Dave',
|
seed: 'Dave',
|
||||||
type: 'sr25519'
|
type: 'sr25519'
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
publicKey: hexToU8a('0xe659a7a1628cdd93febc04a4e0646ea20e9f5f0ce097d9a05290d4a9e054df4e'),
|
p: '0xe659a7a1628cdd93febc04a4e0646ea20e9f5f0ce097d9a05290d4a9e054df4e',
|
||||||
secretKey: hexToU8a('0x683576abfd5dc35273e4264c23095a1bf21c14517bece57c7f0cc5c0ed4ce06a3dbf386b7828f348abe15d76973a72009e6ef86a5c91db2990cb36bb657c6587'), // nosemgrep
|
s: '0x683576abfd5dc35273e4264c23095a1bf21c14517bece57c7f0cc5c0ed4ce06a3dbf386b7828f348abe15d76973a72009e6ef86a5c91db2990cb36bb657c6587', // nosemgrep
|
||||||
seed: 'Eve',
|
seed: 'Eve',
|
||||||
type: 'sr25519'
|
type: 'sr25519'
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
publicKey: hexToU8a('0x1cbd2d43530a44705ad088af313e18f80b53ef16b36177cd4b77b846f2a5f07c'),
|
p: '0x1cbd2d43530a44705ad088af313e18f80b53ef16b36177cd4b77b846f2a5f07c',
|
||||||
secretKey: hexToU8a('0xb835c20f450079cf4f513900ae9faf8df06ad86c681884122c752a4b2bf74d4303e4f21bc6cc62bb4eeed5a9cce642c25e2d2ac1464093b50f6196d78e3a7426'), // nosemgrep
|
s: '0xb835c20f450079cf4f513900ae9faf8df06ad86c681884122c752a4b2bf74d4303e4f21bc6cc62bb4eeed5a9cce642c25e2d2ac1464093b50f6196d78e3a7426', // nosemgrep
|
||||||
seed: 'Ferdie',
|
seed: 'Ferdie',
|
||||||
type: 'sr25519'
|
type: 'sr25519'
|
||||||
}
|
}
|
||||||
@@ -75,44 +76,46 @@ export const PAIRSSR25519: PairDef[] = [
|
|||||||
export const PAIRSETHEREUM: PairDef[] = [
|
export const PAIRSETHEREUM: PairDef[] = [
|
||||||
{
|
{
|
||||||
name: 'Alith',
|
name: 'Alith',
|
||||||
publicKey: hexToU8a('0x02509540919faacf9ab52146c9aa40db68172d83777250b28e4679176e49ccdd9f'),
|
p: '0x02509540919faacf9ab52146c9aa40db68172d83777250b28e4679176e49ccdd9f',
|
||||||
secretKey: hexToU8a('0x5fb92d6e98884f76de468fa3f6278f8807c48bebc13595d45af5bdc4da702133'), // nosemgrep
|
s: '0x5fb92d6e98884f76de468fa3f6278f8807c48bebc13595d45af5bdc4da702133', // nosemgrep
|
||||||
type: 'ethereum'
|
type: 'ethereum'
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
name: 'Baltathar',
|
name: 'Baltathar',
|
||||||
publicKey: hexToU8a('0x033bc19e36ff1673910575b6727a974a9abd80c9a875d41ab3e2648dbfb9e4b518'),
|
p: '0x033bc19e36ff1673910575b6727a974a9abd80c9a875d41ab3e2648dbfb9e4b518',
|
||||||
secretKey: hexToU8a('0x8075991ce870b93a8870eca0c0f91913d12f47948ca0fd25b49c6fa7cdbeee8b'), // nosemgrep
|
s: '0x8075991ce870b93a8870eca0c0f91913d12f47948ca0fd25b49c6fa7cdbeee8b', // nosemgrep
|
||||||
type: 'ethereum'
|
type: 'ethereum'
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
name: 'Charleth',
|
name: 'Charleth',
|
||||||
publicKey: hexToU8a('0x0234637bdc0e89b5d46543bcbf8edff329d2702bc995e27e9af4b1ba009a3c2a5e'),
|
p: '0x0234637bdc0e89b5d46543bcbf8edff329d2702bc995e27e9af4b1ba009a3c2a5e',
|
||||||
secretKey: hexToU8a('0x0b6e18cafb6ed99687ec547bd28139cafdd2bffe70e6b688025de6b445aa5c5b'), // nosemgrep
|
s: '0x0b6e18cafb6ed99687ec547bd28139cafdd2bffe70e6b688025de6b445aa5c5b', // nosemgrep
|
||||||
type: 'ethereum'
|
type: 'ethereum'
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
name: 'Dorothy',
|
name: 'Dorothy',
|
||||||
publicKey: hexToU8a('0x02a00d60b2b408c2a14c5d70cdd2c205db8985ef737a7e55ad20ea32cc9e7c417c'),
|
p: '0x02a00d60b2b408c2a14c5d70cdd2c205db8985ef737a7e55ad20ea32cc9e7c417c',
|
||||||
secretKey: hexToU8a('0x39539ab1876910bbf3a223d84a29e28f1cb4e2e456503e7e91ed39b2e7223d68'), // nosemgrep
|
s: '0x39539ab1876910bbf3a223d84a29e28f1cb4e2e456503e7e91ed39b2e7223d68', // nosemgrep
|
||||||
type: 'ethereum'
|
type: 'ethereum'
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
name: 'Ethan',
|
name: 'Ethan',
|
||||||
publicKey: hexToU8a('0x025cdc005b752651cd3f728fb9192182acb3a9c89e19072cbd5b03f3ee1f1b3ffa'),
|
p: '0x025cdc005b752651cd3f728fb9192182acb3a9c89e19072cbd5b03f3ee1f1b3ffa',
|
||||||
secretKey: hexToU8a('0x7dce9bc8babb68fec1409be38c8e1a52650206a7ed90ff956ae8a6d15eeaaef4'), // nosemgrep
|
s: '0x7dce9bc8babb68fec1409be38c8e1a52650206a7ed90ff956ae8a6d15eeaaef4', // nosemgrep
|
||||||
type: 'ethereum'
|
type: 'ethereum'
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
name: 'Faith',
|
name: 'Faith',
|
||||||
publicKey: hexToU8a('0x037964b6c9d546da4646ada28a99e34acaa1d14e7aba861a9055f9bd200c8abf74'),
|
p: '0x037964b6c9d546da4646ada28a99e34acaa1d14e7aba861a9055f9bd200c8abf74',
|
||||||
secretKey: hexToU8a('0xb9d2ea9a615f3165812e8d44de0d24da9bbd164b65c4f0573e1ce2c8dbd9c8df'), // nosemgrep
|
s: '0xb9d2ea9a615f3165812e8d44de0d24da9bbd164b65c4f0573e1ce2c8dbd9c8df', // nosemgrep
|
||||||
type: 'ethereum'
|
type: 'ethereum'
|
||||||
}
|
}
|
||||||
];
|
];
|
||||||
|
|
||||||
function createMeta (name?: string, seed?: string) {
|
function createMeta (name?: string, seed?: string) {
|
||||||
assert(name || seed, 'Testing pair should have either a name or a seed');
|
if (!name && !seed) {
|
||||||
|
throw new Error('Testing pair should have either a name or a seed');
|
||||||
|
}
|
||||||
|
|
||||||
return {
|
return {
|
||||||
isTesting: true,
|
isTesting: true,
|
||||||
@@ -128,16 +131,20 @@ function createMeta (name?: string, seed?: string) {
|
|||||||
*/
|
*/
|
||||||
export function createTestKeyring (options: KeyringOptions = {}, isDerived = true): KeyringInstance {
|
export function createTestKeyring (options: KeyringOptions = {}, isDerived = true): KeyringInstance {
|
||||||
const keyring = new Keyring(options);
|
const keyring = new Keyring(options);
|
||||||
const pairs = (options.type && options.type === 'ethereum')
|
const pairs = options.type === 'ethereum'
|
||||||
? PAIRSETHEREUM
|
? PAIRSETHEREUM
|
||||||
: PAIRSSR25519;
|
: PAIRSSR25519;
|
||||||
|
|
||||||
for (const { name, publicKey, secretKey, seed, type } of pairs) {
|
for (const { name, p, s, seed, type } of pairs) {
|
||||||
const meta = createMeta(name, seed);
|
const meta = createMeta(name, seed);
|
||||||
const pair = !isDerived && !name && seed
|
const pair = !isDerived && !name && seed
|
||||||
? keyring.addFromUri(seed, meta, options.type)
|
? keyring.addFromUri(seed, meta, options.type)
|
||||||
: keyring.addPair(
|
: keyring.addPair(
|
||||||
createPair({ toSS58: keyring.encodeAddress, type }, { publicKey, secretKey }, meta)
|
createPair(
|
||||||
|
{ toSS58: keyring.encodeAddress, type },
|
||||||
|
{ publicKey: hexToU8a(p), secretKey: hexToU8a(s) },
|
||||||
|
meta
|
||||||
|
)
|
||||||
);
|
);
|
||||||
|
|
||||||
pair.lock = (): void => {
|
pair.lock = (): void => {
|
||||||
|
|||||||
@@ -1,4 +1,4 @@
|
|||||||
// Copyright 2017-2022 @polkadot/keyring authors & contributors
|
// Copyright 2017-2023 @polkadot/keyring authors & contributors
|
||||||
// SPDX-License-Identifier: Apache-2.0
|
// SPDX-License-Identifier: Apache-2.0
|
||||||
|
|
||||||
import { u8aToHex } from '@polkadot/util';
|
import { u8aToHex } from '@polkadot/util';
|
||||||
|
|||||||
@@ -1,4 +1,4 @@
|
|||||||
// Copyright 2017-2022 @polkadot/keyring authors & contributors
|
// Copyright 2017-2023 @polkadot/keyring authors & contributors
|
||||||
// SPDX-License-Identifier: Apache-2.0
|
// SPDX-License-Identifier: Apache-2.0
|
||||||
|
|
||||||
import type { KeyringOptions, KeyringPair } from './types';
|
import type { KeyringOptions, KeyringPair } from './types';
|
||||||
|
|||||||
@@ -1,22 +1,33 @@
|
|||||||
// Copyright 2017-2022 @polkadot/keyring authors & contributors
|
// Copyright 2017-2023 @polkadot/keyring authors & contributors
|
||||||
// SPDX-License-Identifier: Apache-2.0
|
// SPDX-License-Identifier: Apache-2.0
|
||||||
|
|
||||||
import type { HexString } from '@polkadot/util/types';
|
import type { HexString } from '@polkadot/util/types';
|
||||||
import type { EncryptedJson, Keypair, KeypairType, Prefix } from '@polkadot/util-crypto/types';
|
import type { EncryptedJson, Keypair, KeypairType, Prefix } from '@polkadot/util-crypto/types';
|
||||||
|
|
||||||
export interface KeyringOptions {
|
export interface KeyringOptions {
|
||||||
|
/**
|
||||||
|
* @description The ss58Format to use for address encoding (defaults to 42)
|
||||||
|
*/
|
||||||
ss58Format?: Prefix;
|
ss58Format?: Prefix;
|
||||||
|
/**
|
||||||
|
* @description The type of keyring to create (defaults to ed25519)
|
||||||
|
*/
|
||||||
type?: KeypairType;
|
type?: KeypairType;
|
||||||
}
|
}
|
||||||
|
|
||||||
export type KeyringPair$Meta = Record<string, unknown>;
|
export type KeyringPair$Meta = Record<string, unknown>;
|
||||||
|
|
||||||
export interface KeyringPair$Json extends EncryptedJson {
|
export interface KeyringPair$Json extends EncryptedJson {
|
||||||
|
/** The ss58 encoded address or the hex-encoded version (the latter is for ETH-compat chains) */
|
||||||
address: string | HexString;
|
address: string | HexString;
|
||||||
|
/** The underlying metadata associated with the keypair */
|
||||||
meta: KeyringPair$Meta;
|
meta: KeyringPair$Meta;
|
||||||
}
|
}
|
||||||
|
|
||||||
export interface SignOptions {
|
export interface SignOptions {
|
||||||
|
/**
|
||||||
|
* @description Create a MultiSignature-compatible output with an indicator type
|
||||||
|
**/
|
||||||
withType?: boolean;
|
withType?: boolean;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -17,15 +17,14 @@
|
|||||||
},
|
},
|
||||||
"sideEffects": false,
|
"sideEffects": false,
|
||||||
"type": "module",
|
"type": "module",
|
||||||
"version": "8.7.1",
|
"version": "10.2.2",
|
||||||
"main": "index.js",
|
"main": "index.js",
|
||||||
"dependencies": {
|
"dependencies": {
|
||||||
"@babel/runtime": "^7.17.8",
|
"@babel/runtime": "^7.20.7",
|
||||||
"@polkadot/util": "8.7.1",
|
"@polkadot/util": "10.2.2",
|
||||||
"@substrate/ss58-registry": "^1.17.0"
|
"@substrate/ss58-registry": "^1.36.0"
|
||||||
},
|
},
|
||||||
"devDependencies": {
|
"devDependencies": {
|
||||||
"@polkadot/hw-ledger": "8.7.1",
|
"@polkadot/hw-ledger": "10.2.2"
|
||||||
"@polkadot/x-fetch": "8.7.1"
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -1,75 +0,0 @@
|
|||||||
// Copyright 2017-2022 @polkadot/networks authors & contributors
|
|
||||||
// SPDX-License-Identifier: Apache-2.0
|
|
||||||
|
|
||||||
import type { Ss58Registry } from './types';
|
|
||||||
|
|
||||||
import fs from 'fs';
|
|
||||||
|
|
||||||
import { objectKeys, stringify } from '@polkadot/util';
|
|
||||||
import { fetch } from '@polkadot/x-fetch';
|
|
||||||
|
|
||||||
import { allNetworks } from './';
|
|
||||||
|
|
||||||
const REGISTRY = 'https://raw.githubusercontent.com/paritytech/ss58-registry/main/ss58-registry.json';
|
|
||||||
const OUTPUT = './.github/ss58-check.md';
|
|
||||||
|
|
||||||
function assertAndLog (check: boolean, error: string): void {
|
|
||||||
if (!check) {
|
|
||||||
process.env.CI_LOG && fs.appendFileSync(OUTPUT, `
|
|
||||||
|
|
||||||
${error}
|
|
||||||
`);
|
|
||||||
|
|
||||||
throw new Error(error);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
describe('check latest Substrate ss58 registry', (): void => {
|
|
||||||
let original: Ss58Registry;
|
|
||||||
|
|
||||||
beforeAll(async (): Promise<void> => {
|
|
||||||
original = (await (await fetch(REGISTRY)).json()) as Ss58Registry;
|
|
||||||
});
|
|
||||||
|
|
||||||
it('has the same number as the original', (): void => {
|
|
||||||
assertAndLog(allNetworks.length === original.registry.length, `Number of entries mismatched:: Expected ${original.registry.length} found ${allNetworks.length}`);
|
|
||||||
});
|
|
||||||
|
|
||||||
it('has no missing any entries', (): void => {
|
|
||||||
const missing = original.registry
|
|
||||||
.filter(({ prefix }) => !allNetworks.some((n) => n.prefix === prefix))
|
|
||||||
.map(({ displayName, prefix }) => `${displayName} (${prefix})`);
|
|
||||||
|
|
||||||
assertAndLog(!missing.length, `Missing entries found: ${stringify(missing, 2)}`);
|
|
||||||
});
|
|
||||||
|
|
||||||
it('has no extra entries', (): void => {
|
|
||||||
const missing = allNetworks
|
|
||||||
.filter(({ prefix }) => !original.registry.some((n) => n.prefix === prefix))
|
|
||||||
.map(({ displayName, prefix }) => `${displayName} (${prefix})`);
|
|
||||||
|
|
||||||
assertAndLog(!missing.length, `Extra entries found: ${stringify(missing, 2)}`);
|
|
||||||
});
|
|
||||||
|
|
||||||
it('has the same values as the original', (): void => {
|
|
||||||
const fields = objectKeys(original.schema);
|
|
||||||
const errors = original.registry
|
|
||||||
.map((n): [string, string[]] => {
|
|
||||||
const other = allNetworks.find(({ prefix }) => prefix === n.prefix);
|
|
||||||
|
|
||||||
return [
|
|
||||||
`${n.displayName} (${n.prefix})`,
|
|
||||||
other
|
|
||||||
? fields.filter((f) =>
|
|
||||||
['decimals', 'symbols'].includes(f)
|
|
||||||
? stringify(n[f] || []) !== stringify(other[f] || [])
|
|
||||||
: stringify(n[f]) !== stringify(other[f])
|
|
||||||
)
|
|
||||||
: []
|
|
||||||
];
|
|
||||||
})
|
|
||||||
.filter(([, fields]) => fields.length);
|
|
||||||
|
|
||||||
assertAndLog(!errors.length, `Mismatches found: ${stringify(errors.map(([n, m]) => `${n}:: ${m.join(', ')}`), 2)}`);
|
|
||||||
});
|
|
||||||
});
|
|
||||||
@@ -1,4 +1,4 @@
|
|||||||
// Copyright 2017-2022 @polkadot/networks authors & contributors
|
// Copyright 2017-2023 @polkadot/networks authors & contributors
|
||||||
// SPDX-License-Identifier: Apache-2.0
|
// SPDX-License-Identifier: Apache-2.0
|
||||||
|
|
||||||
import { ledgerApps } from '@polkadot/hw-ledger/defaults';
|
import { ledgerApps } from '@polkadot/hw-ledger/defaults';
|
||||||
|
|||||||
@@ -1,4 +1,4 @@
|
|||||||
// Copyright 2017-2022 @polkadot/networks authors & contributors
|
// Copyright 2017-2023 @polkadot/networks authors & contributors
|
||||||
// SPDX-License-Identifier: Apache-2.0
|
// SPDX-License-Identifier: Apache-2.0
|
||||||
|
|
||||||
import type { KnownGenesis } from '../types';
|
import type { KnownGenesis } from '../types';
|
||||||
@@ -11,6 +11,12 @@ export const knownGenesis: KnownGenesis = {
|
|||||||
acala: [
|
acala: [
|
||||||
'0xfc41b9bd8ef8fe53d58c7ea67c794c7ec9a73daf05e6d54b14ff6342c99ba64c'
|
'0xfc41b9bd8ef8fe53d58c7ea67c794c7ec9a73daf05e6d54b14ff6342c99ba64c'
|
||||||
],
|
],
|
||||||
|
ajuna: [
|
||||||
|
'0xe358eb1d11b31255a286c12e44fe6780b7edb171d657905a97e39f71d9c6c3ee'
|
||||||
|
],
|
||||||
|
'aleph-node': [
|
||||||
|
'0x70255b4d28de0fc4e1a193d7e175ad1ccef431598211c55538f1018651a0344e'
|
||||||
|
],
|
||||||
astar: [
|
astar: [
|
||||||
'0x9eb76c5184c4ab8679d2d5d819fdf90b9c001403e9e17da2e14b6d8aec4029c6'
|
'0x9eb76c5184c4ab8679d2d5d819fdf90b9c001403e9e17da2e14b6d8aec4029c6'
|
||||||
],
|
],
|
||||||
@@ -18,11 +24,21 @@ export const knownGenesis: KnownGenesis = {
|
|||||||
'0xa85cfb9b9fd4d622a5b28289a02347af987d8f73fa3108450e2b4a11c1ce5755'
|
'0xa85cfb9b9fd4d622a5b28289a02347af987d8f73fa3108450e2b4a11c1ce5755'
|
||||||
],
|
],
|
||||||
bifrost: [
|
bifrost: [
|
||||||
|
'0x262e1b2ad728475fd6fe88e62d34c200abe6fd693931ddad144059b1eb884e5b'
|
||||||
|
],
|
||||||
|
'bifrost-kusama': [
|
||||||
'0x9f28c6a68e0fc9646eff64935684f6eeeece527e37bbe1f213d22caa1d9d6bed'
|
'0x9f28c6a68e0fc9646eff64935684f6eeeece527e37bbe1f213d22caa1d9d6bed'
|
||||||
],
|
],
|
||||||
centrifuge: [
|
centrifuge: [
|
||||||
|
'0xb3db41421702df9a7fcac62b53ffeac85f7853cc4e689e0b93aeb3db18c09d82',
|
||||||
'0x67dddf2673b69e5f875f6f25277495834398eafd67f492e09f3f3345e003d1b5'
|
'0x67dddf2673b69e5f875f6f25277495834398eafd67f492e09f3f3345e003d1b5'
|
||||||
],
|
],
|
||||||
|
composable: [
|
||||||
|
'0xdaab8df776eb52ec604a5df5d388bb62a050a0aaec4556a64265b9d42755552d'
|
||||||
|
],
|
||||||
|
darwinia: [
|
||||||
|
'0xe71578b37a7c799b0ab4ee87ffa6f059a6b98f71f06fb8c84a8d88013a548ad6'
|
||||||
|
],
|
||||||
'dock-mainnet': [
|
'dock-mainnet': [
|
||||||
'0x6bfe24dca2a3be10f22212678ac13a6446ec764103c0f3471c71609eac384aae',
|
'0x6bfe24dca2a3be10f22212678ac13a6446ec764103c0f3471c71609eac384aae',
|
||||||
'0xf73467c6544aa68df2ee546b135f955c46b90fa627e9b5d7935f41061bb8a5a9'
|
'0xf73467c6544aa68df2ee546b135f955c46b90fa627e9b5d7935f41061bb8a5a9'
|
||||||
@@ -37,14 +53,21 @@ export const knownGenesis: KnownGenesis = {
|
|||||||
'0x9b8cefc0eb5c568b527998bdd76c184e2b76ae561be76e4667072230217ea243'
|
'0x9b8cefc0eb5c568b527998bdd76c184e2b76ae561be76e4667072230217ea243'
|
||||||
],
|
],
|
||||||
hydradx: [
|
hydradx: [
|
||||||
|
'0xafdc188f45c71dacbaa0b62e16a91f726c7b8699a9748cdf715459de6b7f366d', // HydraDX Parachain
|
||||||
'0xd2a620c27ec5cbc5621ff9a522689895074f7cca0d08e7134a7804e1a3ba86fc', // Snakenet Gen3-1
|
'0xd2a620c27ec5cbc5621ff9a522689895074f7cca0d08e7134a7804e1a3ba86fc', // Snakenet Gen3-1
|
||||||
'0x10af6e84234477d84dc572bac0789813b254aa490767ed06fb9591191d1073f9', // Snakenet Gen3
|
'0x10af6e84234477d84dc572bac0789813b254aa490767ed06fb9591191d1073f9', // Snakenet Gen3
|
||||||
'0x3d75507dd46301767e601265791da1d9cb47b6ebc94e87347b635e5bf58bd047', // Snakenet Gen2
|
'0x3d75507dd46301767e601265791da1d9cb47b6ebc94e87347b635e5bf58bd047', // Snakenet Gen2
|
||||||
'0x0ed32bfcab4a83517fac88f2aa7cbc2f88d3ab93be9a12b6188a036bf8a943c2' // Snakenet Gen1
|
'0x0ed32bfcab4a83517fac88f2aa7cbc2f88d3ab93be9a12b6188a036bf8a943c2' // Snakenet Gen1
|
||||||
],
|
],
|
||||||
|
'interlay-parachain': [
|
||||||
|
'0xbf88efe70e9e0e916416e8bed61f2b45717f517d7f3523e33c7b001e5ffcbc72'
|
||||||
|
],
|
||||||
karura: [
|
karura: [
|
||||||
'0xbaf5aabe40646d11f0ee8abbdc64f4a4b7674925cba08e4a05ff9ebed6e2126b'
|
'0xbaf5aabe40646d11f0ee8abbdc64f4a4b7674925cba08e4a05ff9ebed6e2126b'
|
||||||
],
|
],
|
||||||
|
khala: [
|
||||||
|
'0xd43540ba6d3eb4897c28a77d48cb5b729fea37603cbbfc7a86a73b72adb3be8d'
|
||||||
|
],
|
||||||
kulupu: [
|
kulupu: [
|
||||||
'0xf7a99d3cb92853d00d5275c971c132c074636256583fee53b3bbe60d7b8769ba'
|
'0xf7a99d3cb92853d00d5275c971c132c074636256583fee53b3bbe60d7b8769ba'
|
||||||
],
|
],
|
||||||
@@ -53,12 +76,24 @@ export const knownGenesis: KnownGenesis = {
|
|||||||
'0xe3777fa922cafbff200cadeaea1a76bd7898ad5b89f7848999058b50e715f636', // Kusama CC2
|
'0xe3777fa922cafbff200cadeaea1a76bd7898ad5b89f7848999058b50e715f636', // Kusama CC2
|
||||||
'0x3fd7b9eb6a00376e5be61f01abb429ffb0b104be05eaff4d458da48fcd425baf' // Kusama CC1
|
'0x3fd7b9eb6a00376e5be61f01abb429ffb0b104be05eaff4d458da48fcd425baf' // Kusama CC1
|
||||||
],
|
],
|
||||||
'nodle-chain': [
|
nodle: [
|
||||||
'0xa3d114c2b8d0627c1aa9b134eafcf7d05ca561fdc19fb388bb9457f81809fb23'
|
'0x97da7ede98d7bad4e36b4d734b6055425a3be036da2a332ea5a7037656427a21'
|
||||||
|
],
|
||||||
|
origintrail: [
|
||||||
|
'0xe7e0962324a3b86c83404dbea483f25fb5dab4c224791c81b756cfc948006174'
|
||||||
|
],
|
||||||
|
parallel: [
|
||||||
|
'0xe61a41c53f5dcd0beb09df93b34402aada44cb05117b71059cce40a2723a4e97'
|
||||||
|
],
|
||||||
|
phala: [
|
||||||
|
'0x1bb969d85965e4bb5a651abbedf21a54b6b31a21f66b5401cc3f1e286268d736'
|
||||||
],
|
],
|
||||||
picasso: [
|
picasso: [
|
||||||
'0xe8e7f0f4c4f5a00720b4821dbfddefea7490bcf0b19009961cc46957984e2c1c'
|
'0xe8e7f0f4c4f5a00720b4821dbfddefea7490bcf0b19009961cc46957984e2c1c'
|
||||||
],
|
],
|
||||||
|
polkadex: [
|
||||||
|
'0x3920bcb4960a1eef5580cd5367ff3f430eef052774f78468852f7b9cb39f8a3c'
|
||||||
|
],
|
||||||
polkadot: [
|
polkadot: [
|
||||||
'0x91b171bb158e2d3848fa23a9f1c25182fb8e20313b2c1eb49219da7a70ce90c3'
|
'0x91b171bb158e2d3848fa23a9f1c25182fb8e20313b2c1eb49219da7a70ce90c3'
|
||||||
],
|
],
|
||||||
@@ -66,6 +101,7 @@ export const knownGenesis: KnownGenesis = {
|
|||||||
'0x6fbd74e5e1d0a61d52ccfe9d4adaed16dd3a7caa37c6bc4d0c2fa12e8b2f4063'
|
'0x6fbd74e5e1d0a61d52ccfe9d4adaed16dd3a7caa37c6bc4d0c2fa12e8b2f4063'
|
||||||
],
|
],
|
||||||
rococo: [
|
rococo: [
|
||||||
|
'0x6408de7737c59c238890533af25896a2c20608d8b380bb01029acb392781063e',
|
||||||
'0xaaf2cd1b74b5f726895921259421b534124726263982522174147046b8827897',
|
'0xaaf2cd1b74b5f726895921259421b534124726263982522174147046b8827897',
|
||||||
'0x037f5f3c8e67b314062025fc886fcd6238ea25a4a9b45dce8d246815c9ebe770',
|
'0x037f5f3c8e67b314062025fc886fcd6238ea25a4a9b45dce8d246815c9ebe770',
|
||||||
'0xc196f81260cf1686172b47a79cf002120735d7cb0eb1474e8adce56618456fff',
|
'0xc196f81260cf1686172b47a79cf002120735d7cb0eb1474e8adce56618456fff',
|
||||||
@@ -87,10 +123,23 @@ export const knownGenesis: KnownGenesis = {
|
|||||||
statemine: [
|
statemine: [
|
||||||
'0x48239ef607d7928874027a43a67689209727dfb3d3dc5e5b03a39bdc2eda771a'
|
'0x48239ef607d7928874027a43a67689209727dfb3d3dc5e5b03a39bdc2eda771a'
|
||||||
],
|
],
|
||||||
|
statemint: [
|
||||||
|
'0x68d56f15f85d3136970ec16946040bc1752654e906147f7e43e9d539d7c3de2f'
|
||||||
|
],
|
||||||
subsocial: [
|
subsocial: [
|
||||||
'0x0bd72c1c305172e1275278aaeb3f161e02eccb7a819e63f62d47bd53a28189f8'
|
'0x0bd72c1c305172e1275278aaeb3f161e02eccb7a819e63f62d47bd53a28189f8'
|
||||||
],
|
],
|
||||||
|
unique: [
|
||||||
|
'0x84322d9cddbf35088f1e54e9a85c967a41a56a4f43445768125e61af166c7d31'
|
||||||
|
],
|
||||||
|
vtb: [
|
||||||
|
'0x286bc8414c7000ce1d6ee6a834e29a54c1784814b76243eb77ed0b2c5573c60f',
|
||||||
|
'0x7483b89572fb2bd687c7b9a93b242d0b237f9aba463aba07ec24503931038aaa'
|
||||||
|
],
|
||||||
westend: [
|
westend: [
|
||||||
'0xe143f23803ac50e8f6f8e62695d1ce9e4e1d68aa36c1cd2cfd15340213f3423e'
|
'0xe143f23803ac50e8f6f8e62695d1ce9e4e1d68aa36c1cd2cfd15340213f3423e'
|
||||||
|
],
|
||||||
|
xxnetwork: [
|
||||||
|
'0x50dd5d206917bf10502c68fb4d18a59fc8aa31586f4e8856b493e43544aa82aa'
|
||||||
]
|
]
|
||||||
};
|
};
|
||||||
|
|||||||
@@ -1,4 +1,4 @@
|
|||||||
// Copyright 2017-2022 @polkadot/networks authors & contributors
|
// Copyright 2017-2023 @polkadot/networks authors & contributors
|
||||||
// SPDX-License-Identifier: Apache-2.0
|
// SPDX-License-Identifier: Apache-2.0
|
||||||
|
|
||||||
import type { KnownIcon } from '../types';
|
import type { KnownIcon } from '../types';
|
||||||
|
|||||||
@@ -1,4 +1,4 @@
|
|||||||
// Copyright 2017-2022 @polkadot/networks authors & contributors
|
// Copyright 2017-2023 @polkadot/networks authors & contributors
|
||||||
// SPDX-License-Identifier: Apache-2.0
|
// SPDX-License-Identifier: Apache-2.0
|
||||||
|
|
||||||
export { knownGenesis } from './genesis';
|
export { knownGenesis } from './genesis';
|
||||||
|
|||||||
@@ -1,4 +1,4 @@
|
|||||||
// Copyright 2017-2022 @polkadot/networks authors & contributors
|
// Copyright 2017-2023 @polkadot/networks authors & contributors
|
||||||
// SPDX-License-Identifier: Apache-2.0
|
// SPDX-License-Identifier: Apache-2.0
|
||||||
|
|
||||||
import type { KnownLedger } from '../types';
|
import type { KnownLedger } from '../types';
|
||||||
@@ -8,16 +8,36 @@ import type { KnownLedger } from '../types';
|
|||||||
//
|
//
|
||||||
// NOTE: Any network here needs to have a genesisHash attached in the ./genesis.ts config
|
// NOTE: Any network here needs to have a genesisHash attached in the ./genesis.ts config
|
||||||
export const knownLedger: KnownLedger = {
|
export const knownLedger: KnownLedger = {
|
||||||
|
acala: 0x00000313,
|
||||||
|
ajuna: 0x00000162,
|
||||||
|
'aleph-node': 0x00000283,
|
||||||
|
astar: 0x0000032a,
|
||||||
bifrost: 0x00000314,
|
bifrost: 0x00000314,
|
||||||
|
'bifrost-kusama': 0x00000314,
|
||||||
centrifuge: 0x000002eb,
|
centrifuge: 0x000002eb,
|
||||||
|
composable: 0x00000162,
|
||||||
|
darwinia: 0x00000162,
|
||||||
'dock-mainnet': 0x00000252,
|
'dock-mainnet': 0x00000252,
|
||||||
edgeware: 0x0000020b,
|
edgeware: 0x0000020b,
|
||||||
equilibrium: 0x05f5e0fd,
|
equilibrium: 0x05f5e0fd,
|
||||||
genshiro: 0x05f5e0fc,
|
genshiro: 0x05f5e0fc,
|
||||||
|
hydradx: 0x00000162,
|
||||||
|
'interlay-parachain': 0x00000162,
|
||||||
|
karura: 0x000002ae,
|
||||||
|
khala: 0x000001b2,
|
||||||
kusama: 0x000001b2,
|
kusama: 0x000001b2,
|
||||||
'nodle-chain': 0x000003eb,
|
nodle: 0x000003eb,
|
||||||
|
origintrail: 0x00000162,
|
||||||
|
parallel: 0x00000162,
|
||||||
|
phala: 0x00000162,
|
||||||
|
polkadex: 0x0000031f,
|
||||||
polkadot: 0x00000162,
|
polkadot: 0x00000162,
|
||||||
polymesh: 0x00000253,
|
polymesh: 0x00000253,
|
||||||
sora: 0x00000269,
|
sora: 0x00000269,
|
||||||
statemine: 0x000001b2 // common-good on Kusama, shares derivation
|
stafi: 0x0000038b,
|
||||||
|
statemine: 0x000001b2, // common-good on Kusama, shares derivation
|
||||||
|
statemint: 0x00000162, // common-good on Polkadot, shares derivation
|
||||||
|
unique: 0x00000162,
|
||||||
|
vtb: 0x000002b6,
|
||||||
|
xxnetwork: 0x000007a3
|
||||||
};
|
};
|
||||||
|
|||||||
@@ -1,4 +1,4 @@
|
|||||||
// Copyright 2017-2022 @polkadot/networks authors & contributors
|
// Copyright 2017-2023 @polkadot/networks authors & contributors
|
||||||
// SPDX-License-Identifier: Apache-2.0
|
// SPDX-License-Identifier: Apache-2.0
|
||||||
|
|
||||||
import type { KnownTestnet } from '../types';
|
import type { KnownTestnet } from '../types';
|
||||||
@@ -10,6 +10,7 @@ export const knownTestnet: KnownTestnet = {
|
|||||||
'dock-testnet': true,
|
'dock-testnet': true,
|
||||||
jupiter: true,
|
jupiter: true,
|
||||||
'mathchain-testnet': true,
|
'mathchain-testnet': true,
|
||||||
|
p3dt: true,
|
||||||
subspace_testnet: true,
|
subspace_testnet: true,
|
||||||
'zero-alphaville': true
|
'zero-alphaville': true
|
||||||
};
|
};
|
||||||
|
|||||||
@@ -1,4 +1,4 @@
|
|||||||
// Copyright 2017-2022 @polkadot/networks authors & contributors
|
// Copyright 2017-2023 @polkadot/networks authors & contributors
|
||||||
// SPDX-License-Identifier: Apache-2.0
|
// SPDX-License-Identifier: Apache-2.0
|
||||||
|
|
||||||
export default [];
|
export default [];
|
||||||
|
|||||||
@@ -1,4 +1,4 @@
|
|||||||
// Copyright 2017-2022 @polkadot/networks authors & contributors
|
// Copyright 2017-2023 @polkadot/networks authors & contributors
|
||||||
// SPDX-License-Identifier: Apache-2.0
|
// SPDX-License-Identifier: Apache-2.0
|
||||||
|
|
||||||
// Do not edit, auto-generated by @polkadot/dev
|
// Do not edit, auto-generated by @polkadot/dev
|
||||||
|
|||||||
@@ -1,4 +1,4 @@
|
|||||||
// Copyright 2017-2022 @polkadot/networks authors & contributors
|
// Copyright 2017-2023 @polkadot/networks authors & contributors
|
||||||
// SPDX-License-Identifier: Apache-2.0
|
// SPDX-License-Identifier: Apache-2.0
|
||||||
|
|
||||||
import type { SubstrateNetwork } from './types';
|
import type { SubstrateNetwork } from './types';
|
||||||
@@ -11,7 +11,7 @@ describe('availableNetworks', (): void => {
|
|||||||
expect(availableNetworks.slice(0, 3).map(({ prefix }) => prefix)).toEqual([0, 2, 42]);
|
expect(availableNetworks.slice(0, 3).map(({ prefix }) => prefix)).toEqual([0, 2, 42]);
|
||||||
});
|
});
|
||||||
|
|
||||||
it('has a sorted list (first external, last external)', (): void => {
|
it.skip('has a sorted list (first external, last external)', (): void => {
|
||||||
expect(availableNetworks[3].displayName).toEqual('Acala');
|
expect(availableNetworks[3].displayName).toEqual('Acala');
|
||||||
expect(availableNetworks[availableNetworks.length - 1].displayName).toEqual('ZERO');
|
expect(availableNetworks[availableNetworks.length - 1].displayName).toEqual('ZERO');
|
||||||
});
|
});
|
||||||
@@ -113,6 +113,6 @@ describe('selectableNetworks', (): void => {
|
|||||||
|
|
||||||
it('has a sorted list (first external, last external)', (): void => {
|
it('has a sorted list (first external, last external)', (): void => {
|
||||||
expect(selectableNetworks[3].displayName).toEqual('Acala');
|
expect(selectableNetworks[3].displayName).toEqual('Acala');
|
||||||
expect(selectableNetworks[selectableNetworks.length - 1].displayName).toEqual('Stafi');
|
expect(selectableNetworks[selectableNetworks.length - 1].displayName).toEqual('xx network');
|
||||||
});
|
});
|
||||||
});
|
});
|
||||||
|
|||||||
@@ -1,5 +1,9 @@
|
|||||||
// Copyright 2017-2022 @polkadot/networks authors & contributors
|
// Copyright 2017-2023 @polkadot/networks authors & contributors
|
||||||
// SPDX-License-Identifier: Apache-2.0
|
// SPDX-License-Identifier: Apache-2.0
|
||||||
|
|
||||||
|
// TODO: This was removed, really cannot recall the reason...
|
||||||
|
// ... put it back, but keep it removed
|
||||||
|
// import './detectPackage';
|
||||||
|
|
||||||
export * from './interfaces';
|
export * from './interfaces';
|
||||||
export { packageInfo } from './packageInfo';
|
export { packageInfo } from './packageInfo';
|
||||||
|
|||||||
@@ -1,4 +1,4 @@
|
|||||||
// Copyright 2017-2022 @polkadot/networks authors & contributors
|
// Copyright 2017-2023 @polkadot/networks authors & contributors
|
||||||
// SPDX-License-Identifier: Apache-2.0
|
// SPDX-License-Identifier: Apache-2.0
|
||||||
|
|
||||||
import type { KnownSubstrate, Network, SubstrateNetwork } from './types';
|
import type { KnownSubstrate, Network, SubstrateNetwork } from './types';
|
||||||
|
|||||||
@@ -0,0 +1,4 @@
|
|||||||
|
// Copyright 2017-2023 @polkadot/networks authors & contributors
|
||||||
|
// SPDX-License-Identifier: Apache-2.0
|
||||||
|
|
||||||
|
export * from './index';
|
||||||
@@ -1,6 +1,6 @@
|
|||||||
// Copyright 2017-2022 @polkadot/networks authors & contributors
|
// Copyright 2017-2023 @polkadot/networks authors & contributors
|
||||||
// SPDX-License-Identifier: Apache-2.0
|
// SPDX-License-Identifier: Apache-2.0
|
||||||
|
|
||||||
// Do not edit, auto-generated by @polkadot/dev
|
// Do not edit, auto-generated by @polkadot/dev
|
||||||
|
|
||||||
export const packageInfo = { name: '@polkadot/networks', path: 'auto', type: 'auto', version: '8.7.1' };
|
export const packageInfo = { name: '@polkadot/networks', path: 'auto', type: 'auto', version: '10.2.2' };
|
||||||
|
|||||||
@@ -1,4 +1,4 @@
|
|||||||
// Copyright 2017-2022 @polkadot/networks authors & contributors
|
// Copyright 2017-2023 @polkadot/networks authors & contributors
|
||||||
// SPDX-License-Identifier: Apache-2.0
|
// SPDX-License-Identifier: Apache-2.0
|
||||||
|
|
||||||
import known from '@substrate/ss58-registry';
|
import known from '@substrate/ss58-registry';
|
||||||
|
|||||||
@@ -232,6 +232,19 @@
|
|||||||
"standardAccount": "*25519",
|
"standardAccount": "*25519",
|
||||||
"website": "https://darwinia.network/"
|
"website": "https://darwinia.network/"
|
||||||
},
|
},
|
||||||
|
{
|
||||||
|
"prefix": 19,
|
||||||
|
"network": "watr",
|
||||||
|
"displayName": "Watr Protocol",
|
||||||
|
"symbols": [
|
||||||
|
"WATR"
|
||||||
|
],
|
||||||
|
"decimals": [
|
||||||
|
18
|
||||||
|
],
|
||||||
|
"standardAccount": "*25519",
|
||||||
|
"website": "https://www.watr.org"
|
||||||
|
},
|
||||||
{
|
{
|
||||||
"prefix": 20,
|
"prefix": 20,
|
||||||
"network": "stafi",
|
"network": "stafi",
|
||||||
@@ -245,22 +258,9 @@
|
|||||||
"standardAccount": "*25519",
|
"standardAccount": "*25519",
|
||||||
"website": "https://stafi.io"
|
"website": "https://stafi.io"
|
||||||
},
|
},
|
||||||
{
|
|
||||||
"prefix": 21,
|
|
||||||
"network": "dock-testnet",
|
|
||||||
"displayName": "Dock Testnet",
|
|
||||||
"symbols": [
|
|
||||||
"DCK"
|
|
||||||
],
|
|
||||||
"decimals": [
|
|
||||||
6
|
|
||||||
],
|
|
||||||
"standardAccount": "*25519",
|
|
||||||
"website": "https://dock.io"
|
|
||||||
},
|
|
||||||
{
|
{
|
||||||
"prefix": 22,
|
"prefix": 22,
|
||||||
"network": "dock-mainnet",
|
"network": "dock-pos-mainnet",
|
||||||
"displayName": "Dock Mainnet",
|
"displayName": "Dock Mainnet",
|
||||||
"symbols": [
|
"symbols": [
|
||||||
"DCK"
|
"DCK"
|
||||||
@@ -451,7 +451,7 @@
|
|||||||
"NODL"
|
"NODL"
|
||||||
],
|
],
|
||||||
"decimals": [
|
"decimals": [
|
||||||
18
|
11
|
||||||
],
|
],
|
||||||
"standardAccount": "*25519",
|
"standardAccount": "*25519",
|
||||||
"website": "https://nodle.io/"
|
"website": "https://nodle.io/"
|
||||||
@@ -459,12 +459,12 @@
|
|||||||
{
|
{
|
||||||
"prefix": 38,
|
"prefix": 38,
|
||||||
"network": "kilt",
|
"network": "kilt",
|
||||||
"displayName": "KILT Chain",
|
"displayName": "KILT Spiritnet",
|
||||||
"symbols": [
|
"symbols": [
|
||||||
"KILT"
|
"KILT"
|
||||||
],
|
],
|
||||||
"decimals": [
|
"decimals": [
|
||||||
18
|
15
|
||||||
],
|
],
|
||||||
"standardAccount": "*25519",
|
"standardAccount": "*25519",
|
||||||
"website": "https://kilt.io/"
|
"website": "https://kilt.io/"
|
||||||
@@ -612,9 +612,11 @@
|
|||||||
"network": "oak",
|
"network": "oak",
|
||||||
"displayName": "OAK Network",
|
"displayName": "OAK Network",
|
||||||
"symbols": [
|
"symbols": [
|
||||||
"OAK"
|
"OAK",
|
||||||
|
"TUR"
|
||||||
],
|
],
|
||||||
"decimals": [
|
"decimals": [
|
||||||
|
10,
|
||||||
10
|
10
|
||||||
],
|
],
|
||||||
"standardAccount": "*25519",
|
"standardAccount": "*25519",
|
||||||
@@ -646,6 +648,19 @@
|
|||||||
"standardAccount": "*25519",
|
"standardAccount": "*25519",
|
||||||
"website": "https://dico.io"
|
"website": "https://dico.io"
|
||||||
},
|
},
|
||||||
|
{
|
||||||
|
"prefix": 54,
|
||||||
|
"network": "cere",
|
||||||
|
"displayName": "Cere Network",
|
||||||
|
"symbols": [
|
||||||
|
"CERE"
|
||||||
|
],
|
||||||
|
"decimals": [
|
||||||
|
10
|
||||||
|
],
|
||||||
|
"standardAccount": "*25519",
|
||||||
|
"website": "https://cere.network"
|
||||||
|
},
|
||||||
{
|
{
|
||||||
"prefix": 55,
|
"prefix": 55,
|
||||||
"network": "xxnetwork",
|
"network": "xxnetwork",
|
||||||
@@ -659,6 +674,32 @@
|
|||||||
"standardAccount": "*25519",
|
"standardAccount": "*25519",
|
||||||
"website": "https://xx.network"
|
"website": "https://xx.network"
|
||||||
},
|
},
|
||||||
|
{
|
||||||
|
"prefix": 56,
|
||||||
|
"network": "pendulum",
|
||||||
|
"displayName": "Pendulum chain",
|
||||||
|
"symbols": [
|
||||||
|
"PEN"
|
||||||
|
],
|
||||||
|
"decimals": [
|
||||||
|
12
|
||||||
|
],
|
||||||
|
"standardAccount": "*25519",
|
||||||
|
"website": "https://pendulumchain.org/"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"prefix": 57,
|
||||||
|
"network": "amplitude",
|
||||||
|
"displayName": "Amplitude chain",
|
||||||
|
"symbols": [
|
||||||
|
"AMPE"
|
||||||
|
],
|
||||||
|
"decimals": [
|
||||||
|
12
|
||||||
|
],
|
||||||
|
"standardAccount": "*25519",
|
||||||
|
"website": "https://pendulumchain.org/"
|
||||||
|
},
|
||||||
{
|
{
|
||||||
"prefix": 63,
|
"prefix": 63,
|
||||||
"network": "hydradx",
|
"network": "hydradx",
|
||||||
@@ -741,6 +782,32 @@
|
|||||||
"standardAccount": "*25519",
|
"standardAccount": "*25519",
|
||||||
"website": "https://sora.org"
|
"website": "https://sora.org"
|
||||||
},
|
},
|
||||||
|
{
|
||||||
|
"prefix": 71,
|
||||||
|
"network": "p3d",
|
||||||
|
"displayName": "3DP network",
|
||||||
|
"symbols": [
|
||||||
|
"P3D"
|
||||||
|
],
|
||||||
|
"decimals": [
|
||||||
|
12
|
||||||
|
],
|
||||||
|
"standardAccount": "*25519",
|
||||||
|
"website": "https://3dpass.org"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"prefix": 72,
|
||||||
|
"network": "p3dt",
|
||||||
|
"displayName": "3DP test network",
|
||||||
|
"symbols": [
|
||||||
|
"P3Dt"
|
||||||
|
],
|
||||||
|
"decimals": [
|
||||||
|
12
|
||||||
|
],
|
||||||
|
"standardAccount": "*25519",
|
||||||
|
"website": "https://3dpass.org"
|
||||||
|
},
|
||||||
{
|
{
|
||||||
"prefix": 73,
|
"prefix": 73,
|
||||||
"network": "zeitgeist",
|
"network": "zeitgeist",
|
||||||
@@ -780,6 +847,19 @@
|
|||||||
"standardAccount": "*25519",
|
"standardAccount": "*25519",
|
||||||
"website": "https://manta.network"
|
"website": "https://manta.network"
|
||||||
},
|
},
|
||||||
|
{
|
||||||
|
"prefix": 81,
|
||||||
|
"network": "sora_dot_para",
|
||||||
|
"displayName": "SORA Polkadot Parachain",
|
||||||
|
"symbols": [
|
||||||
|
"XOR"
|
||||||
|
],
|
||||||
|
"decimals": [
|
||||||
|
18
|
||||||
|
],
|
||||||
|
"standardAccount": "*25519",
|
||||||
|
"website": "https://sora.org"
|
||||||
|
},
|
||||||
{
|
{
|
||||||
"prefix": 88,
|
"prefix": 88,
|
||||||
"network": "polkadex",
|
"network": "polkadex",
|
||||||
@@ -793,6 +873,58 @@
|
|||||||
"standardAccount": "*25519",
|
"standardAccount": "*25519",
|
||||||
"website": "https://polkadex.trade"
|
"website": "https://polkadex.trade"
|
||||||
},
|
},
|
||||||
|
{
|
||||||
|
"prefix": 89,
|
||||||
|
"network": "polkadexparachain",
|
||||||
|
"displayName": "Polkadex Parachain",
|
||||||
|
"symbols": [
|
||||||
|
"PDEX"
|
||||||
|
],
|
||||||
|
"decimals": [
|
||||||
|
12
|
||||||
|
],
|
||||||
|
"standardAccount": "*25519",
|
||||||
|
"website": "https://polkadex.trade"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"prefix": 90,
|
||||||
|
"network": "frequency",
|
||||||
|
"displayName": "Frequency",
|
||||||
|
"symbols": [
|
||||||
|
"FRQCY"
|
||||||
|
],
|
||||||
|
"decimals": [
|
||||||
|
8
|
||||||
|
],
|
||||||
|
"standardAccount": "*25519",
|
||||||
|
"website": "https://www.frequency.xyz"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"prefix": 92,
|
||||||
|
"network": "anmol",
|
||||||
|
"displayName": "Anmol Network",
|
||||||
|
"symbols": [
|
||||||
|
"ANML"
|
||||||
|
],
|
||||||
|
"decimals": [
|
||||||
|
18
|
||||||
|
],
|
||||||
|
"standardAccount": "*25519",
|
||||||
|
"website": "https://anmol.network/"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"prefix": 93,
|
||||||
|
"network": "fragnova",
|
||||||
|
"displayName": "Fragnova Network",
|
||||||
|
"symbols": [
|
||||||
|
"NOVA"
|
||||||
|
],
|
||||||
|
"decimals": [
|
||||||
|
12
|
||||||
|
],
|
||||||
|
"standardAccount": "*25519",
|
||||||
|
"website": "https://fragnova.com"
|
||||||
|
},
|
||||||
{
|
{
|
||||||
"prefix": 98,
|
"prefix": 98,
|
||||||
"network": "polkasmith",
|
"network": "polkasmith",
|
||||||
@@ -820,17 +952,30 @@
|
|||||||
"website": "https://polkafoundry.com"
|
"website": "https://polkafoundry.com"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"prefix": 101,
|
"prefix": 100,
|
||||||
"network": "origintrail-parachain",
|
"network": "ibtida",
|
||||||
"displayName": "OriginTrail Parachain",
|
"displayName": "Anmol Network Ibtida Canary network",
|
||||||
"symbols": [
|
"symbols": [
|
||||||
"TRAC"
|
"IANML"
|
||||||
],
|
],
|
||||||
"decimals": [
|
"decimals": [
|
||||||
18
|
18
|
||||||
],
|
],
|
||||||
"standardAccount": "secp256k1",
|
"standardAccount": "*25519",
|
||||||
"website": "https://origintrail.io"
|
"website": "https://anmol.network/"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"prefix": 101,
|
||||||
|
"network": "origintrail-parachain",
|
||||||
|
"displayName": "OriginTrail Parachain",
|
||||||
|
"symbols": [
|
||||||
|
"OTP"
|
||||||
|
],
|
||||||
|
"decimals": [
|
||||||
|
12
|
||||||
|
],
|
||||||
|
"standardAccount": "*25519",
|
||||||
|
"website": "https://parachain.origintrail.io/"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"prefix": 105,
|
"prefix": 105,
|
||||||
@@ -867,6 +1012,32 @@
|
|||||||
"standardAccount": "*25519",
|
"standardAccount": "*25519",
|
||||||
"website": "https://integritee.network"
|
"website": "https://integritee.network"
|
||||||
},
|
},
|
||||||
|
{
|
||||||
|
"prefix": 117,
|
||||||
|
"network": "tinker",
|
||||||
|
"displayName": "Tinker",
|
||||||
|
"symbols": [
|
||||||
|
"TNKR"
|
||||||
|
],
|
||||||
|
"decimals": [
|
||||||
|
12
|
||||||
|
],
|
||||||
|
"standardAccount": "*25519",
|
||||||
|
"website": "https://invarch.network"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"prefix": 126,
|
||||||
|
"network": "joystream",
|
||||||
|
"displayName": "Joystream",
|
||||||
|
"symbols": [
|
||||||
|
"JOY"
|
||||||
|
],
|
||||||
|
"decimals": [
|
||||||
|
10
|
||||||
|
],
|
||||||
|
"standardAccount": "*25519",
|
||||||
|
"website": "https://www.joystream.org"
|
||||||
|
},
|
||||||
{
|
{
|
||||||
"prefix": 128,
|
"prefix": 128,
|
||||||
"network": "clover",
|
"network": "clover",
|
||||||
@@ -880,6 +1051,19 @@
|
|||||||
"standardAccount": "*25519",
|
"standardAccount": "*25519",
|
||||||
"website": "https://clover.finance"
|
"website": "https://clover.finance"
|
||||||
},
|
},
|
||||||
|
{
|
||||||
|
"prefix": 129,
|
||||||
|
"network": "dorafactory-polkadot",
|
||||||
|
"displayName": "Dorafactory Polkadot Network",
|
||||||
|
"symbols": [
|
||||||
|
"DORA"
|
||||||
|
],
|
||||||
|
"decimals": [
|
||||||
|
12
|
||||||
|
],
|
||||||
|
"standardAccount": "*25519",
|
||||||
|
"website": "https://dorafactory.org"
|
||||||
|
},
|
||||||
{
|
{
|
||||||
"prefix": 131,
|
"prefix": 131,
|
||||||
"network": "litmus",
|
"network": "litmus",
|
||||||
@@ -906,6 +1090,19 @@
|
|||||||
"standardAccount": "*25519",
|
"standardAccount": "*25519",
|
||||||
"website": "https://centrifuge.io/"
|
"website": "https://centrifuge.io/"
|
||||||
},
|
},
|
||||||
|
{
|
||||||
|
"prefix": 137,
|
||||||
|
"network": "vara",
|
||||||
|
"displayName": "Vara Network",
|
||||||
|
"symbols": [
|
||||||
|
"VARA"
|
||||||
|
],
|
||||||
|
"decimals": [
|
||||||
|
12
|
||||||
|
],
|
||||||
|
"standardAccount": "*25519",
|
||||||
|
"website": "https://vara-network.io/"
|
||||||
|
},
|
||||||
{
|
{
|
||||||
"prefix": 172,
|
"prefix": 172,
|
||||||
"network": "parallel",
|
"network": "parallel",
|
||||||
@@ -940,7 +1137,7 @@
|
|||||||
"QTZ"
|
"QTZ"
|
||||||
],
|
],
|
||||||
"decimals": [
|
"decimals": [
|
||||||
15
|
18
|
||||||
],
|
],
|
||||||
"standardAccount": "*25519",
|
"standardAccount": "*25519",
|
||||||
"website": "https://unique.network"
|
"website": "https://unique.network"
|
||||||
@@ -994,9 +1191,35 @@
|
|||||||
"decimals": [
|
"decimals": [
|
||||||
18
|
18
|
||||||
],
|
],
|
||||||
"standardAccount": "Sr25519",
|
"standardAccount": "*25519",
|
||||||
"website": "https://efinity.io/"
|
"website": "https://efinity.io/"
|
||||||
},
|
},
|
||||||
|
{
|
||||||
|
"prefix": 1221,
|
||||||
|
"network": "peaq",
|
||||||
|
"displayName": "Peaq Network",
|
||||||
|
"symbols": [
|
||||||
|
"PEAQ"
|
||||||
|
],
|
||||||
|
"decimals": [
|
||||||
|
18
|
||||||
|
],
|
||||||
|
"standardAccount": "Sr25519",
|
||||||
|
"website": "https://www.peaq.network/"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"prefix": 1222,
|
||||||
|
"network": "krest",
|
||||||
|
"displayName": "Krest Network",
|
||||||
|
"symbols": [
|
||||||
|
"KREST"
|
||||||
|
],
|
||||||
|
"decimals": [
|
||||||
|
18
|
||||||
|
],
|
||||||
|
"standardAccount": "Sr25519",
|
||||||
|
"website": "https://www.peaq.network/"
|
||||||
|
},
|
||||||
{
|
{
|
||||||
"prefix": 1284,
|
"prefix": 1284,
|
||||||
"network": "moonbeam",
|
"network": "moonbeam",
|
||||||
@@ -1024,7 +1247,7 @@
|
|||||||
"website": "https://moonbeam.network"
|
"website": "https://moonbeam.network"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"prefix": 1337,
|
"prefix": 1328,
|
||||||
"network": "ajuna",
|
"network": "ajuna",
|
||||||
"displayName": "Ajuna Network",
|
"displayName": "Ajuna Network",
|
||||||
"symbols": [
|
"symbols": [
|
||||||
@@ -1033,9 +1256,35 @@
|
|||||||
"decimals": [
|
"decimals": [
|
||||||
12
|
12
|
||||||
],
|
],
|
||||||
"standardAccount": "Sr25519",
|
"standardAccount": "*25519",
|
||||||
"website": "https://ajuna.io"
|
"website": "https://ajuna.io"
|
||||||
},
|
},
|
||||||
|
{
|
||||||
|
"prefix": 1337,
|
||||||
|
"network": "bajun",
|
||||||
|
"displayName": "Bajun Network",
|
||||||
|
"symbols": [
|
||||||
|
"BAJU"
|
||||||
|
],
|
||||||
|
"decimals": [
|
||||||
|
12
|
||||||
|
],
|
||||||
|
"standardAccount": "*25519",
|
||||||
|
"website": "https://ajuna.io"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"prefix": 1985,
|
||||||
|
"network": "seals",
|
||||||
|
"displayName": "Seals Network",
|
||||||
|
"symbols": [
|
||||||
|
"SEAL"
|
||||||
|
],
|
||||||
|
"decimals": [
|
||||||
|
9
|
||||||
|
],
|
||||||
|
"standardAccount": "*25519",
|
||||||
|
"website": "https://seals.app"
|
||||||
|
},
|
||||||
{
|
{
|
||||||
"prefix": 2007,
|
"prefix": 2007,
|
||||||
"network": "kapex",
|
"network": "kapex",
|
||||||
@@ -1049,6 +1298,19 @@
|
|||||||
"standardAccount": "*25519",
|
"standardAccount": "*25519",
|
||||||
"website": "https://totemaccounting.com"
|
"website": "https://totemaccounting.com"
|
||||||
},
|
},
|
||||||
|
{
|
||||||
|
"prefix": 2009,
|
||||||
|
"network": "cloudwalk_mainnet",
|
||||||
|
"displayName": "CloudWalk Network Mainnet",
|
||||||
|
"symbols": [
|
||||||
|
"CWN"
|
||||||
|
],
|
||||||
|
"decimals": [
|
||||||
|
18
|
||||||
|
],
|
||||||
|
"standardAccount": "*25519",
|
||||||
|
"website": "https://explorer.mainnet.cloudwalk.io"
|
||||||
|
},
|
||||||
{
|
{
|
||||||
"prefix": 2032,
|
"prefix": 2032,
|
||||||
"network": "interlay",
|
"network": "interlay",
|
||||||
@@ -1075,6 +1337,71 @@
|
|||||||
"standardAccount": "*25519",
|
"standardAccount": "*25519",
|
||||||
"website": "https://interlay.io/"
|
"website": "https://interlay.io/"
|
||||||
},
|
},
|
||||||
|
{
|
||||||
|
"prefix": 2106,
|
||||||
|
"network": "bitgreen",
|
||||||
|
"displayName": "Bitgreen",
|
||||||
|
"symbols": [
|
||||||
|
"BBB"
|
||||||
|
],
|
||||||
|
"decimals": [
|
||||||
|
18
|
||||||
|
],
|
||||||
|
"standardAccount": "*25519",
|
||||||
|
"website": "https://bitgreen.org/"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"prefix": 2112,
|
||||||
|
"network": "chainflip",
|
||||||
|
"displayName": "Chainflip",
|
||||||
|
"symbols": [
|
||||||
|
"FLIP"
|
||||||
|
],
|
||||||
|
"decimals": [
|
||||||
|
18
|
||||||
|
],
|
||||||
|
"standardAccount": "*25519",
|
||||||
|
"website": "https://chainflip.io/"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"prefix": 2114,
|
||||||
|
"network": "Turing",
|
||||||
|
"displayName": "Turing Network",
|
||||||
|
"symbols": [
|
||||||
|
"TUR"
|
||||||
|
],
|
||||||
|
"decimals": [
|
||||||
|
10
|
||||||
|
],
|
||||||
|
"standardAccount": "*25519",
|
||||||
|
"website": "https://oak.tech/turing/home/"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"prefix": 2207,
|
||||||
|
"network": "SNOW",
|
||||||
|
"displayName": "SNOW: ICE Canary Network",
|
||||||
|
"symbols": [
|
||||||
|
"ICZ"
|
||||||
|
],
|
||||||
|
"decimals": [
|
||||||
|
18
|
||||||
|
],
|
||||||
|
"standardAccount": "*25519",
|
||||||
|
"website": "https://icenetwork.io"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"prefix": 2208,
|
||||||
|
"network": "ICE",
|
||||||
|
"displayName": "ICE Network",
|
||||||
|
"symbols": [
|
||||||
|
"ICY"
|
||||||
|
],
|
||||||
|
"decimals": [
|
||||||
|
18
|
||||||
|
],
|
||||||
|
"standardAccount": "*25519",
|
||||||
|
"website": "https://icenetwork.io"
|
||||||
|
},
|
||||||
{
|
{
|
||||||
"prefix": 2254,
|
"prefix": 2254,
|
||||||
"network": "subspace_testnet",
|
"network": "subspace_testnet",
|
||||||
@@ -1088,6 +1415,45 @@
|
|||||||
"standardAccount": "*25519",
|
"standardAccount": "*25519",
|
||||||
"website": "https://subspace.network"
|
"website": "https://subspace.network"
|
||||||
},
|
},
|
||||||
|
{
|
||||||
|
"prefix": 4006,
|
||||||
|
"network": "tangle",
|
||||||
|
"displayName": "Tangle Network",
|
||||||
|
"symbols": [
|
||||||
|
"TNT"
|
||||||
|
],
|
||||||
|
"decimals": [
|
||||||
|
18
|
||||||
|
],
|
||||||
|
"standardAccount": "*25519",
|
||||||
|
"website": "https://www.webb.tools/"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"prefix": 4450,
|
||||||
|
"network": "g1",
|
||||||
|
"displayName": "Ğ1",
|
||||||
|
"symbols": [
|
||||||
|
"G1"
|
||||||
|
],
|
||||||
|
"decimals": [
|
||||||
|
2
|
||||||
|
],
|
||||||
|
"standardAccount": "*25519",
|
||||||
|
"website": "https://duniter.org"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"prefix": 5234,
|
||||||
|
"network": "humanode",
|
||||||
|
"displayName": "Humanode Network",
|
||||||
|
"symbols": [
|
||||||
|
"HMND"
|
||||||
|
],
|
||||||
|
"decimals": [
|
||||||
|
18
|
||||||
|
],
|
||||||
|
"standardAccount": "*25519",
|
||||||
|
"website": "https://humanode.io"
|
||||||
|
},
|
||||||
{
|
{
|
||||||
"prefix": 6094,
|
"prefix": 6094,
|
||||||
"network": "subspace",
|
"network": "subspace",
|
||||||
@@ -1101,6 +1467,36 @@
|
|||||||
"standardAccount": "*25519",
|
"standardAccount": "*25519",
|
||||||
"website": "https://subspace.network"
|
"website": "https://subspace.network"
|
||||||
},
|
},
|
||||||
|
{
|
||||||
|
"prefix": 7007,
|
||||||
|
"network": "tidefi",
|
||||||
|
"displayName": "Tidefi",
|
||||||
|
"symbols": [
|
||||||
|
"TDFY"
|
||||||
|
],
|
||||||
|
"decimals": [
|
||||||
|
12
|
||||||
|
],
|
||||||
|
"standardAccount": "*25519",
|
||||||
|
"website": "https://tidefi.com"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"prefix": 7013,
|
||||||
|
"network": "gm",
|
||||||
|
"displayName": "GM",
|
||||||
|
"symbols": [
|
||||||
|
"FREN",
|
||||||
|
"GM",
|
||||||
|
"GN"
|
||||||
|
],
|
||||||
|
"decimals": [
|
||||||
|
12,
|
||||||
|
0,
|
||||||
|
0
|
||||||
|
],
|
||||||
|
"standardAccount": "*25519",
|
||||||
|
"website": "https://gmordie.com"
|
||||||
|
},
|
||||||
{
|
{
|
||||||
"prefix": 7391,
|
"prefix": 7391,
|
||||||
"network": "unique_mainnet",
|
"network": "unique_mainnet",
|
||||||
@@ -1114,6 +1510,58 @@
|
|||||||
"standardAccount": "*25519",
|
"standardAccount": "*25519",
|
||||||
"website": "https://unique.network"
|
"website": "https://unique.network"
|
||||||
},
|
},
|
||||||
|
{
|
||||||
|
"prefix": 8883,
|
||||||
|
"network": "sapphire_mainnet",
|
||||||
|
"displayName": "Sapphire by Unique",
|
||||||
|
"symbols": [
|
||||||
|
"QTZ"
|
||||||
|
],
|
||||||
|
"decimals": [
|
||||||
|
18
|
||||||
|
],
|
||||||
|
"standardAccount": "*25519",
|
||||||
|
"website": "https://unique.network"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"prefix": 9072,
|
||||||
|
"network": "hashed",
|
||||||
|
"displayName": "Hashed Network",
|
||||||
|
"symbols": [
|
||||||
|
"HASH"
|
||||||
|
],
|
||||||
|
"decimals": [
|
||||||
|
18
|
||||||
|
],
|
||||||
|
"standardAccount": "*25519",
|
||||||
|
"website": "https://hashed.network"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"prefix": 9807,
|
||||||
|
"network": "dentnet",
|
||||||
|
"displayName": "DENTNet",
|
||||||
|
"symbols": [
|
||||||
|
"DENTX"
|
||||||
|
],
|
||||||
|
"decimals": [
|
||||||
|
18
|
||||||
|
],
|
||||||
|
"standardAccount": "*25519",
|
||||||
|
"website": "https://www.dentnet.io"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"prefix": 9935,
|
||||||
|
"network": "t3rn",
|
||||||
|
"displayName": "t3rn",
|
||||||
|
"symbols": [
|
||||||
|
"TRN"
|
||||||
|
],
|
||||||
|
"decimals": [
|
||||||
|
12
|
||||||
|
],
|
||||||
|
"standardAccount": "*25519",
|
||||||
|
"website": "https://t3rn.io/"
|
||||||
|
},
|
||||||
{
|
{
|
||||||
"prefix": 10041,
|
"prefix": 10041,
|
||||||
"network": "basilisk",
|
"network": "basilisk",
|
||||||
@@ -1153,6 +1601,19 @@
|
|||||||
"standardAccount": "*25519",
|
"standardAccount": "*25519",
|
||||||
"website": "https://cess.cloud"
|
"website": "https://cess.cloud"
|
||||||
},
|
},
|
||||||
|
{
|
||||||
|
"prefix": 11486,
|
||||||
|
"network": "luhn",
|
||||||
|
"displayName": "Luhn Network",
|
||||||
|
"symbols": [
|
||||||
|
"LUHN"
|
||||||
|
],
|
||||||
|
"decimals": [
|
||||||
|
18
|
||||||
|
],
|
||||||
|
"standardAccount": "*25519",
|
||||||
|
"website": "https://luhn.network"
|
||||||
|
},
|
||||||
{
|
{
|
||||||
"prefix": 11820,
|
"prefix": 11820,
|
||||||
"network": "contextfree",
|
"network": "contextfree",
|
||||||
@@ -1165,5 +1626,18 @@
|
|||||||
],
|
],
|
||||||
"standardAccount": "*25519",
|
"standardAccount": "*25519",
|
||||||
"website": "https://ata.network"
|
"website": "https://ata.network"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"prefix": 12191,
|
||||||
|
"network": "nftmart",
|
||||||
|
"displayName": "NFTMart",
|
||||||
|
"symbols": [
|
||||||
|
"NMT"
|
||||||
|
],
|
||||||
|
"decimals": [
|
||||||
|
12
|
||||||
|
],
|
||||||
|
"standardAccount": "*25519",
|
||||||
|
"website": "https://nftmart.io"
|
||||||
}
|
}
|
||||||
]
|
]
|
||||||
@@ -1,4 +1,4 @@
|
|||||||
// Copyright 2017-2022 @polkadot/keyring authors & contributors
|
// Copyright 2017-2023 @polkadot/keyring authors & contributors
|
||||||
// SPDX-License-Identifier: Apache-2.0
|
// SPDX-License-Identifier: Apache-2.0
|
||||||
|
|
||||||
import type { RegistryEntry } from '@substrate/ss58-registry';
|
import type { RegistryEntry } from '@substrate/ss58-registry';
|
||||||
|
|||||||
@@ -12,7 +12,6 @@
|
|||||||
],
|
],
|
||||||
"references": [
|
"references": [
|
||||||
{ "path": "../hw-ledger/tsconfig.build.json" },
|
{ "path": "../hw-ledger/tsconfig.build.json" },
|
||||||
{ "path": "../util/tsconfig.build.json" },
|
{ "path": "../util/tsconfig.build.json" }
|
||||||
{ "path": "../x-fetch/tsconfig.build.json" }
|
|
||||||
]
|
]
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -22,22 +22,22 @@
|
|||||||
"./detectPackage.cjs"
|
"./detectPackage.cjs"
|
||||||
],
|
],
|
||||||
"type": "module",
|
"type": "module",
|
||||||
"version": "8.7.1",
|
"version": "10.2.2",
|
||||||
"browser": {
|
"browser": {
|
||||||
"crypto": false,
|
"crypto": false,
|
||||||
"stream": false
|
"stream": false
|
||||||
},
|
},
|
||||||
"main": "index.js",
|
"main": "index.js",
|
||||||
"dependencies": {
|
"dependencies": {
|
||||||
"@babel/runtime": "^7.17.8",
|
"@babel/runtime": "^7.20.7",
|
||||||
"@noble/hashes": "1.0.0",
|
"@noble/hashes": "1.1.5",
|
||||||
"@noble/secp256k1": "1.5.5",
|
"@noble/secp256k1": "1.7.0",
|
||||||
"@polkadot/networks": "8.7.1",
|
"@polkadot/networks": "10.2.2",
|
||||||
"@polkadot/util": "8.7.1",
|
"@polkadot/util": "10.2.2",
|
||||||
"@polkadot/wasm-crypto": "^5.1.1",
|
"@polkadot/wasm-crypto": "^6.4.1",
|
||||||
"@polkadot/x-bigint": "8.7.1",
|
"@polkadot/x-bigint": "10.2.2",
|
||||||
"@polkadot/x-randomvalues": "8.7.1",
|
"@polkadot/x-randomvalues": "10.2.2",
|
||||||
"@scure/base": "1.0.0",
|
"@scure/base": "1.1.1",
|
||||||
"ed2curve": "^0.3.0",
|
"ed2curve": "^0.3.0",
|
||||||
"tweetnacl": "^1.0.3"
|
"tweetnacl": "^1.0.3"
|
||||||
},
|
},
|
||||||
@@ -45,6 +45,6 @@
|
|||||||
"@types/ed2curve": "^0.2.2"
|
"@types/ed2curve": "^0.2.2"
|
||||||
},
|
},
|
||||||
"peerDependencies": {
|
"peerDependencies": {
|
||||||
"@polkadot/util": "8.7.1"
|
"@polkadot/util": "10.2.2"
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -1,4 +1,4 @@
|
|||||||
// Copyright 2017-2022 @polkadot/util-crypto authors & contributors
|
// Copyright 2017-2023 @polkadot/util-crypto authors & contributors
|
||||||
// SPDX-License-Identifier: Apache-2.0
|
// SPDX-License-Identifier: Apache-2.0
|
||||||
|
|
||||||
import { hexToU8a } from '@polkadot/util';
|
import { hexToU8a } from '@polkadot/util';
|
||||||
|
|||||||
@@ -1,4 +1,4 @@
|
|||||||
// Copyright 2017-2022 @polkadot/util-crypto authors & contributors
|
// Copyright 2017-2023 @polkadot/util-crypto authors & contributors
|
||||||
// SPDX-License-Identifier: Apache-2.0
|
// SPDX-License-Identifier: Apache-2.0
|
||||||
|
|
||||||
import type { HexString } from '@polkadot/util/types';
|
import type { HexString } from '@polkadot/util/types';
|
||||||
@@ -10,7 +10,5 @@ import { decodeAddress } from './decode';
|
|||||||
* @summary Converts an SS58 address to its corresponding EVM address.
|
* @summary Converts an SS58 address to its corresponding EVM address.
|
||||||
*/
|
*/
|
||||||
export function addressToEvm (address: HexString | string | Uint8Array, ignoreChecksum?: boolean): Uint8Array {
|
export function addressToEvm (address: HexString | string | Uint8Array, ignoreChecksum?: boolean): Uint8Array {
|
||||||
const decoded = decodeAddress(address, ignoreChecksum);
|
return decodeAddress(address, ignoreChecksum).subarray(0, 20);
|
||||||
|
|
||||||
return decoded.subarray(0, 20);
|
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -1,4 +1,4 @@
|
|||||||
// Copyright 2017-2022 @polkadot/util-crypto authors & contributors
|
// Copyright 2017-2023 @polkadot/util-crypto authors & contributors
|
||||||
// SPDX-License-Identifier: Apache-2.0
|
// SPDX-License-Identifier: Apache-2.0
|
||||||
|
|
||||||
import { checkAddress } from '.';
|
import { checkAddress } from '.';
|
||||||
|
|||||||
@@ -1,4 +1,4 @@
|
|||||||
// Copyright 2017-2022 @polkadot/util-crypto authors & contributors
|
// Copyright 2017-2023 @polkadot/util-crypto authors & contributors
|
||||||
// SPDX-License-Identifier: Apache-2.0
|
// SPDX-License-Identifier: Apache-2.0
|
||||||
|
|
||||||
import type { HexString } from '@polkadot/util/types';
|
import type { HexString } from '@polkadot/util/types';
|
||||||
|
|||||||
@@ -1,4 +1,4 @@
|
|||||||
// Copyright 2017-2022 @polkadot/util-crypto authors & contributors
|
// Copyright 2017-2023 @polkadot/util-crypto authors & contributors
|
||||||
// SPDX-License-Identifier: Apache-2.0
|
// SPDX-License-Identifier: Apache-2.0
|
||||||
|
|
||||||
import { base58Decode } from '../base58';
|
import { base58Decode } from '../base58';
|
||||||
|
|||||||
@@ -1,4 +1,4 @@
|
|||||||
// Copyright 2017-2022 @polkadot/util-crypto authors & contributors
|
// Copyright 2017-2023 @polkadot/util-crypto authors & contributors
|
||||||
// SPDX-License-Identifier: Apache-2.0
|
// SPDX-License-Identifier: Apache-2.0
|
||||||
|
|
||||||
import { sshash } from './sshash';
|
import { sshash } from './sshash';
|
||||||
|
|||||||
@@ -1,4 +1,4 @@
|
|||||||
// Copyright 2017-2022 @polkadot/util-crypto authors & contributors
|
// Copyright 2017-2023 @polkadot/util-crypto authors & contributors
|
||||||
// SPDX-License-Identifier: Apache-2.0
|
// SPDX-License-Identifier: Apache-2.0
|
||||||
|
|
||||||
import { hexToU8a, stringToU8a, u8aToHex } from '@polkadot/util';
|
import { hexToU8a, stringToU8a, u8aToHex } from '@polkadot/util';
|
||||||
|
|||||||
@@ -1,18 +1,20 @@
|
|||||||
// Copyright 2017-2022 @polkadot/util-crypto authors & contributors
|
// Copyright 2017-2023 @polkadot/util-crypto authors & contributors
|
||||||
// SPDX-License-Identifier: Apache-2.0
|
// SPDX-License-Identifier: Apache-2.0
|
||||||
|
|
||||||
import type { HexString } from '@polkadot/util/types';
|
import type { HexString } from '@polkadot/util/types';
|
||||||
import type { Prefix } from './types';
|
import type { Prefix } from './types';
|
||||||
|
|
||||||
// Original implementation: https://github.com/paritytech/polka-ui/blob/4858c094684769080f5811f32b081dd7780b0880/src/polkadot.js#L6
|
// Original implementation: https://github.com/paritytech/polka-ui/blob/4858c094684769080f5811f32b081dd7780b0880/src/polkadot.js#L6
|
||||||
import { assert, isHex, isU8a, u8aToU8a } from '@polkadot/util';
|
import { isHex, isU8a, u8aToU8a } from '@polkadot/util';
|
||||||
|
|
||||||
import { base58Decode } from '../base58';
|
import { base58Decode } from '../base58';
|
||||||
import { checkAddressChecksum } from './checksum';
|
import { checkAddressChecksum } from './checksum';
|
||||||
import { defaults } from './defaults';
|
import { defaults } from './defaults';
|
||||||
|
|
||||||
export function decodeAddress (encoded?: HexString | string | Uint8Array | null, ignoreChecksum?: boolean, ss58Format: Prefix = -1): Uint8Array {
|
export function decodeAddress (encoded?: HexString | string | Uint8Array | null, ignoreChecksum?: boolean, ss58Format: Prefix = -1): Uint8Array {
|
||||||
assert(encoded, 'Invalid empty address passed');
|
if (!encoded) {
|
||||||
|
throw new Error('Invalid empty address passed');
|
||||||
|
}
|
||||||
|
|
||||||
if (isU8a(encoded) || isHex(encoded)) {
|
if (isU8a(encoded) || isHex(encoded)) {
|
||||||
return u8aToU8a(encoded);
|
return u8aToU8a(encoded);
|
||||||
@@ -21,12 +23,17 @@ export function decodeAddress (encoded?: HexString | string | Uint8Array | null,
|
|||||||
try {
|
try {
|
||||||
const decoded = base58Decode(encoded);
|
const decoded = base58Decode(encoded);
|
||||||
|
|
||||||
assert(defaults.allowedEncodedLengths.includes(decoded.length), 'Invalid decoded address length');
|
if (!defaults.allowedEncodedLengths.includes(decoded.length)) {
|
||||||
|
throw new Error('Invalid decoded address length');
|
||||||
|
}
|
||||||
|
|
||||||
const [isValid, endPos, ss58Length, ss58Decoded] = checkAddressChecksum(decoded);
|
const [isValid, endPos, ss58Length, ss58Decoded] = checkAddressChecksum(decoded);
|
||||||
|
|
||||||
assert(ignoreChecksum || isValid, 'Invalid decoded address checksum');
|
if (!isValid && !ignoreChecksum) {
|
||||||
assert([-1, ss58Decoded].includes(ss58Format), () => `Expected ss58Format ${ss58Format}, received ${ss58Decoded}`);
|
throw new Error('Invalid decoded address checksum');
|
||||||
|
} else if (ss58Format !== -1 && ss58Format !== ss58Decoded) {
|
||||||
|
throw new Error(`Expected ss58Format ${ss58Format}, received ${ss58Decoded}`);
|
||||||
|
}
|
||||||
|
|
||||||
return decoded.slice(ss58Length, endPos);
|
return decoded.slice(ss58Length, endPos);
|
||||||
} catch (error) {
|
} catch (error) {
|
||||||
|
|||||||
@@ -1,18 +1,12 @@
|
|||||||
// Copyright 2017-2022 @polkadot/util-crypto authors & contributors
|
// Copyright 2017-2023 @polkadot/util-crypto authors & contributors
|
||||||
// SPDX-License-Identifier: Apache-2.0
|
// SPDX-License-Identifier: Apache-2.0
|
||||||
|
|
||||||
import type { Network } from '@polkadot/networks/types';
|
|
||||||
|
|
||||||
import { availableNetworks } from '../networks';
|
import { availableNetworks } from '../networks';
|
||||||
|
|
||||||
function networkToPrefix ({ prefix }: Network): number {
|
|
||||||
return prefix;
|
|
||||||
}
|
|
||||||
|
|
||||||
export const defaults = {
|
export const defaults = {
|
||||||
allowedDecodedLengths: [1, 2, 4, 8, 32, 33],
|
allowedDecodedLengths: [1, 2, 4, 8, 32, 33],
|
||||||
// publicKey has prefix + 2 checksum bytes, short only prefix + 1 checksum byte
|
// publicKey has prefix + 2 checksum bytes, short only prefix + 1 checksum byte
|
||||||
allowedEncodedLengths: [3, 4, 6, 10, 35, 36, 37, 38],
|
allowedEncodedLengths: [3, 4, 6, 10, 35, 36, 37, 38],
|
||||||
allowedPrefix: availableNetworks.map(networkToPrefix),
|
allowedPrefix: availableNetworks.map(({ prefix }) => prefix),
|
||||||
prefix: 42
|
prefix: 42
|
||||||
};
|
};
|
||||||
|
|||||||
@@ -1,4 +1,4 @@
|
|||||||
// Copyright 2017-2022 @polkadot/util-crypto authors & contributors
|
// Copyright 2017-2023 @polkadot/util-crypto authors & contributors
|
||||||
// SPDX-License-Identifier: Apache-2.0
|
// SPDX-License-Identifier: Apache-2.0
|
||||||
|
|
||||||
import { waitReady } from '@polkadot/wasm-crypto';
|
import { waitReady } from '@polkadot/wasm-crypto';
|
||||||
|
|||||||
@@ -1,12 +1,10 @@
|
|||||||
// Copyright 2017-2022 @polkadot/util-crypto authors & contributors
|
// Copyright 2017-2023 @polkadot/util-crypto authors & contributors
|
||||||
// SPDX-License-Identifier: Apache-2.0
|
// SPDX-License-Identifier: Apache-2.0
|
||||||
|
|
||||||
import type { HexString } from '@polkadot/util/types';
|
import type { HexString } from '@polkadot/util/types';
|
||||||
import type { DeriveJunction } from '../key/DeriveJunction';
|
import type { DeriveJunction } from '../key/DeriveJunction';
|
||||||
import type { Prefix } from './types';
|
import type { Prefix } from './types';
|
||||||
|
|
||||||
import { assert } from '@polkadot/util';
|
|
||||||
|
|
||||||
import { keyExtractPath } from '../key';
|
import { keyExtractPath } from '../key';
|
||||||
import { sr25519DerivePublic } from '../sr25519';
|
import { sr25519DerivePublic } from '../sr25519';
|
||||||
import { decodeAddress } from './decode';
|
import { decodeAddress } from './decode';
|
||||||
@@ -25,7 +23,9 @@ function filterHard ({ isHard }: DeriveJunction): boolean {
|
|||||||
export function deriveAddress (who: HexString | Uint8Array | string, suri: string, ss58Format?: Prefix): string {
|
export function deriveAddress (who: HexString | Uint8Array | string, suri: string, ss58Format?: Prefix): string {
|
||||||
const { path } = keyExtractPath(suri);
|
const { path } = keyExtractPath(suri);
|
||||||
|
|
||||||
assert(path.length && !path.every(filterHard), 'Expected suri to contain a combination of non-hard paths');
|
if (!path.length || path.every(filterHard)) {
|
||||||
|
throw new Error('Expected suri to contain a combination of non-hard paths');
|
||||||
|
}
|
||||||
|
|
||||||
let publicKey = decodeAddress(who);
|
let publicKey = decodeAddress(who);
|
||||||
|
|
||||||
|
|||||||
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user