|
1 |
| -import type { MapLevels } from "./../utils/index.js"; |
2 |
| -import { constMap, filterIndexes, zip, cartesianRightRecursive } from "./../utils/index.js"; |
| 1 | +import { |
| 2 | + cartesianRightRecursive, |
| 3 | + constMap, |
| 4 | + filterIndexes, |
| 5 | + MapLevels, |
| 6 | + replaceElement, |
| 7 | + zip, |
| 8 | +} from "./../utils/index.js"; |
3 | 9 | import type { Network } from "./networks.js";
|
4 | 10 |
|
5 |
| -const guardianKeyAndNameEntries = [ |
6 |
| - [ |
7 |
| - "Mainnet", |
8 |
| - [ |
9 |
| - [ |
10 |
| - 4, |
11 |
| - [ |
12 |
| - ["0x5893B5A76c3f739645648885bDCcC06cd70a3Cd3", "RockawayX"], |
13 |
| - ["0xfF6CB952589BDE862c25Ef4392132fb9D4A42157", "Staked"], |
14 |
| - ["0x114De8460193bdf3A2fCf81f86a09765F4762fD1", "Figment"], |
15 |
| - ["0x107A0086b32d7A0977926A205131d8731D39cbEB", "ChainodeTech"], |
16 |
| - ["0x8C82B2fd82FaeD2711d59AF0F2499D16e726f6b2", "Inotel"], |
17 |
| - ["0x11b39756C042441BE6D8650b69b54EbE715E2343", "HashQuark"], |
18 |
| - ["0x54Ce5B4D348fb74B958e8966e2ec3dBd4958a7cd", "ChainLayer"], |
19 |
| - ["0x15e7cAF07C4e3DC8e7C469f92C8Cd88FB8005a20", "xLabs"], |
20 |
| - ["0x74a3bf913953D695260D88BC1aA25A4eeE363ef0", "Forbole"], |
21 |
| - ["0x000aC0076727b35FBea2dAc28fEE5cCB0fEA768e", "Staking Fund"], |
22 |
| - ["0xAF45Ced136b9D9e24903464AE889F5C8a723FC14", "Moonlet"], |
23 |
| - ["0xf93124b7c738843CBB89E864c862c38cddCccF95", "P2P Validator"], |
24 |
| - ["0xD2CC37A4dc036a8D232b48f62cDD4731412f4890", "01node"], |
25 |
| - ["0xDA798F6896A3331F64b48c12D1D57Fd9cbe70811", "MCF"], |
26 |
| - ["0x71AA1BE1D36CaFE3867910F99C09e347899C19C3", "Everstake"], |
27 |
| - ["0x8192b6E7387CCd768277c17DAb1b7a5027c0b3Cf", "Chorus One"], |
28 |
| - ["0x178e21ad2E77AE06711549CFBB1f9c7a9d8096e8", "syncnode"], |
29 |
| - ["0x5E1487F35515d02A92753504a8D75471b9f49EdB", "Triton"], |
30 |
| - ["0x6FbEBc898F403E4773E95feB15E80C9A99c8348d", "Staking Facilities"], |
31 |
| - ], |
32 |
| - ], |
33 |
| - [ |
34 |
| - 3, |
35 |
| - [ |
36 |
| - ["0x58CC3AE5C097b213cE3c81979e1B9f9570746AA5", "JumpCrypto"], |
37 |
| - ["0xfF6CB952589BDE862c25Ef4392132fb9D4A42157", "Staked"], |
38 |
| - ["0x114De8460193bdf3A2fCf81f86a09765F4762fD1", "Figment"], |
39 |
| - ["0x107A0086b32d7A0977926A205131d8731D39cbEB", "ChainodeTech"], |
40 |
| - ["0x8C82B2fd82FaeD2711d59AF0F2499D16e726f6b2", "Inotel"], |
41 |
| - ["0x11b39756C042441BE6D8650b69b54EbE715E2343", "HashQuark"], |
42 |
| - ["0x54Ce5B4D348fb74B958e8966e2ec3dBd4958a7cd", "ChainLayer"], |
43 |
| - ["0x15e7cAF07C4e3DC8e7C469f92C8Cd88FB8005a20", "xLabs"], |
44 |
| - ["0x74a3bf913953D695260D88BC1aA25A4eeE363ef0", "Forbole"], |
45 |
| - ["0x000aC0076727b35FBea2dAc28fEE5cCB0fEA768e", "Staking Fund"], |
46 |
| - ["0xAF45Ced136b9D9e24903464AE889F5C8a723FC14", "Moonlet"], |
47 |
| - ["0xf93124b7c738843CBB89E864c862c38cddCccF95", "P2P Validator"], |
48 |
| - ["0xD2CC37A4dc036a8D232b48f62cDD4731412f4890", "01node"], |
49 |
| - ["0xDA798F6896A3331F64b48c12D1D57Fd9cbe70811", "MCF"], |
50 |
| - ["0x71AA1BE1D36CaFE3867910F99C09e347899C19C3", "Everstake"], |
51 |
| - ["0x8192b6E7387CCd768277c17DAb1b7a5027c0b3Cf", "Chorus One"], |
52 |
| - ["0x178e21ad2E77AE06711549CFBB1f9c7a9d8096e8", "syncnode"], |
53 |
| - ["0x5E1487F35515d02A92753504a8D75471b9f49EdB", "Triton"], |
54 |
| - ["0x6FbEBc898F403E4773E95feB15E80C9A99c8348d", "Staking Facilities"], |
55 |
| - ], |
56 |
| - ], |
57 |
| - [ |
58 |
| - 2, |
59 |
| - [ |
60 |
| - ["0x58CC3AE5C097b213cE3c81979e1B9f9570746AA5", "Certus One"], |
61 |
| - ["0xfF6CB952589BDE862c25Ef4392132fb9D4A42157", "Staked"], |
62 |
| - ["0x114De8460193bdf3A2fCf81f86a09765F4762fD1", "Figment"], |
63 |
| - ["0x107A0086b32d7A0977926A205131d8731D39cbEB", "ChainodeTech"], |
64 |
| - ["0x8C82B2fd82FaeD2711d59AF0F2499D16e726f6b2", "Inotel"], |
65 |
| - ["0x11b39756C042441BE6D8650b69b54EbE715E2343", "HashQuark"], |
66 |
| - ["0x54Ce5B4D348fb74B958e8966e2ec3dBd4958a7cd", "ChainLayer"], |
67 |
| - ["0x15e7cAF07C4e3DC8e7C469f92C8Cd88FB8005a20", "xLabs"], |
68 |
| - ["0x74a3bf913953D695260D88BC1aA25A4eeE363ef0", "Forbole"], |
69 |
| - ["0x000aC0076727b35FBea2dAc28fEE5cCB0fEA768e", "Staking Fund"], |
70 |
| - ["0xAF45Ced136b9D9e24903464AE889F5C8a723FC14", "Moonlet"], |
71 |
| - ["0xf93124b7c738843CBB89E864c862c38cddCccF95", "P2P Validator"], |
72 |
| - ["0xD2CC37A4dc036a8D232b48f62cDD4731412f4890", "01node"], |
73 |
| - ["0xDA798F6896A3331F64b48c12D1D57Fd9cbe70811", "MCF"], |
74 |
| - ["0x71AA1BE1D36CaFE3867910F99C09e347899C19C3", "Everstake"], |
75 |
| - ["0x8192b6E7387CCd768277c17DAb1b7a5027c0b3Cf", "Chorus One"], |
76 |
| - ["0x178e21ad2E77AE06711549CFBB1f9c7a9d8096e8", "syncnode"], |
77 |
| - ["0x5E1487F35515d02A92753504a8D75471b9f49EdB", "Triton"], |
78 |
| - ["0x6FbEBc898F403E4773E95feB15E80C9A99c8348d", "Staking Facilities"], |
79 |
| - ], |
80 |
| - ], |
81 |
| - [ |
82 |
| - 1, |
83 |
| - [ |
84 |
| - ["0x58CC3AE5C097b213cE3c81979e1B9f9570746AA5", "Certus One"], |
85 |
| - ["0xfF6CB952589BDE862c25Ef4392132fb9D4A42157", "Staked"], |
86 |
| - ["0x114De8460193bdf3A2fCf81f86a09765F4762fD1", "Figment"], |
87 |
| - ["0x107A0086b32d7A0977926A205131d8731D39cbEB", "ChainodeTech"], |
88 |
| - ["0x8C82B2fd82FaeD2711d59AF0F2499D16e726f6b2", "Inotel"], |
89 |
| - ["0x11b39756C042441BE6D8650b69b54EbE715E2343", "HashQuark"], |
90 |
| - ["0x54Ce5B4D348fb74B958e8966e2ec3dBd4958a7cd", "ChainLayer"], |
91 |
| - ["0xeB5F7389Fa26941519f0863349C223b73a6DDEE7", "DokiaCapital"], |
92 |
| - ["0x74a3bf913953D695260D88BC1aA25A4eeE363ef0", "Forbole"], |
93 |
| - ["0x000aC0076727b35FBea2dAc28fEE5cCB0fEA768e", "Staking Fund"], |
94 |
| - ["0xAF45Ced136b9D9e24903464AE889F5C8a723FC14", "Moonlet"], |
95 |
| - ["0xf93124b7c738843CBB89E864c862c38cddCccF95", "P2P Validator"], |
96 |
| - ["0xD2CC37A4dc036a8D232b48f62cDD4731412f4890", "01node"], |
97 |
| - ["0xDA798F6896A3331F64b48c12D1D57Fd9cbe70811", "MCF"], |
98 |
| - ["0x71AA1BE1D36CaFE3867910F99C09e347899C19C3", "Everstake"], |
99 |
| - ["0x8192b6E7387CCd768277c17DAb1b7a5027c0b3Cf", "Chorus One"], |
100 |
| - ["0x178e21ad2E77AE06711549CFBB1f9c7a9d8096e8", "syncnode"], |
101 |
| - ["0x5E1487F35515d02A92753504a8D75471b9f49EdB", "Triton"], |
102 |
| - ["0x6FbEBc898F403E4773E95feB15E80C9A99c8348d", "Staking Facilities"], |
103 |
| - ], |
104 |
| - ], |
105 |
| - ], |
106 |
| - ], |
107 |
| - ["Testnet", [[1, [["0x13947Bd48b18E53fdAeEe77F3473391aC727C638", "Testnet guardian"]]]]], |
| 11 | +const guardianSet1 = [ |
| 12 | + ["0x58CC3AE5C097b213cE3c81979e1B9f9570746AA5", "Certus One"], |
| 13 | + ["0xfF6CB952589BDE862c25Ef4392132fb9D4A42157", "Staked"], |
| 14 | + ["0x114De8460193bdf3A2fCf81f86a09765F4762fD1", "Figment"], |
| 15 | + ["0x107A0086b32d7A0977926A205131d8731D39cbEB", "ChainodeTech"], |
| 16 | + ["0x8C82B2fd82FaeD2711d59AF0F2499D16e726f6b2", "Inotel"], |
| 17 | + ["0x11b39756C042441BE6D8650b69b54EbE715E2343", "HashQuark"], |
| 18 | + ["0x54Ce5B4D348fb74B958e8966e2ec3dBd4958a7cd", "ChainLayer"], |
| 19 | + ["0xeB5F7389Fa26941519f0863349C223b73a6DDEE7", "DokiaCapital"], |
| 20 | + ["0x74a3bf913953D695260D88BC1aA25A4eeE363ef0", "Forbole"], |
| 21 | + ["0x000aC0076727b35FBea2dAc28fEE5cCB0fEA768e", "Staking Fund"], |
| 22 | + ["0xAF45Ced136b9D9e24903464AE889F5C8a723FC14", "Moonlet"], |
| 23 | + ["0xf93124b7c738843CBB89E864c862c38cddCccF95", "P2P Validator"], |
| 24 | + ["0xD2CC37A4dc036a8D232b48f62cDD4731412f4890", "01node"], |
| 25 | + ["0xDA798F6896A3331F64b48c12D1D57Fd9cbe70811", "MCF"], |
| 26 | + ["0x71AA1BE1D36CaFE3867910F99C09e347899C19C3", "Everstake"], |
| 27 | + ["0x8192b6E7387CCd768277c17DAb1b7a5027c0b3Cf", "Chorus One"], |
| 28 | + ["0x178e21ad2E77AE06711549CFBB1f9c7a9d8096e8", "syncnode"], |
| 29 | + ["0x5E1487F35515d02A92753504a8D75471b9f49EdB", "Triton"], |
| 30 | + ["0x6FbEBc898F403E4773E95feB15E80C9A99c8348d", "Staking Facilities"], |
| 31 | +] as const; |
| 32 | + |
| 33 | +const guardianSet2 = replaceElement(guardianSet1, 7, [ |
| 34 | + "0x66B9590e1c41e0B226937bf9217D1d67Fd4E91F5", |
| 35 | + "FTX", |
| 36 | +]); |
| 37 | + |
| 38 | +const guardianSet3 = replaceElement(guardianSet2, 7, [ |
| 39 | + "0x15e7cAF07C4e3DC8e7C469f92C8Cd88FB8005a20", |
| 40 | + "xLabs", |
| 41 | +]); |
| 42 | + |
| 43 | +const guardianSet4 = replaceElement(guardianSet3, 0, [ |
| 44 | + "0x5893B5A76c3f739645648885bDCcC06cd70a3Cd3", |
| 45 | + "RockawayX", |
| 46 | +]); |
| 47 | + |
| 48 | +const testnetGuardian = ["0x13947Bd48b18E53fdAeEe77F3473391aC727C638", "Testnet guardian"] as const; |
| 49 | + |
| 50 | +// prettier-ignore |
| 51 | +const guardianKeyAndNameEntries = [[ |
| 52 | + "Mainnet", [ |
| 53 | + [1, guardianSet1], |
| 54 | + [2, guardianSet2], |
| 55 | + [3, guardianSet3], |
| 56 | + [4, guardianSet4], |
| 57 | + ]], //[ |
| 58 | + //"Testnet", [ |
| 59 | + // [1, [testnetGuardian]] |
| 60 | +//]], |
108 | 61 | ] as const satisfies MapLevels<[Network, number, string, string]>;
|
109 | 62 |
|
110 |
| -// TODO: not sure how to implement these |
| 63 | +export const guardianSets = constMap(guardianKeyAndNameEntries, [ |
| 64 | + [1, 0], |
| 65 | + [0, 1, 2, 3], |
| 66 | +]); |
| 67 | + |
| 68 | +console.log(JSON.stringify(guardianSets)); |
| 69 | +guardianSets.get(4, "Mainnet"); |
| 70 | + |
| 71 | +export const [guardianKeys, guardianNames] = filterIndexes( |
| 72 | + zip(cartesianRightRecursive(guardianKeyAndNameEntries)), |
| 73 | + [2, 3], |
| 74 | +); |
111 | 75 |
|
112 |
| -//export const [guardianKeys, guardianNames] = filterIndexes( |
113 |
| -// zip(cartesianRightRecursive(guardianKeyAndNameEntries)), |
114 |
| -// [1, 2], |
115 |
| -//); |
116 |
| -// |
117 |
| -//export const guardianNameToKey = constMap(guardianKeyAndNameEntries, [[0, 2], 1]); |
118 |
| -//export const guardianKeyToName = constMap(guardianKeyAndNameEntries, [1, [0, 2]]); |
| 76 | +// export const guardianNameToKey = constMap(guardianKeyAndNameEntries, [[1, 0, 2], 3]); |
| 77 | +// export const guardianKeyToName = constMap(guardianKeyAndNameEntries, [2, [1, 0, 3]]); |
119 | 78 |
|
120 | 79 | export const devnetGuardianPrivateKey =
|
121 | 80 | "cfb12303a19cde580bb4dd771639b0d26bc68353645571a8cff516ab2ee113a0";
|
|
0 commit comments