@obolnetwork/obol-sdk 1.0.11 → 1.0.13

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (70) hide show
  1. package/LICENCE +21 -0
  2. package/README.md +33 -3
  3. package/dist/cjs/package.json +128 -0
  4. package/dist/cjs/src/ajv.js +2 -1
  5. package/dist/cjs/src/base.js +2 -2
  6. package/dist/cjs/src/constants.js +38 -13
  7. package/dist/cjs/src/errors.js +1 -1
  8. package/dist/cjs/src/index.js +24 -21
  9. package/dist/cjs/src/schema.js +24 -36
  10. package/dist/cjs/src/services.js +2 -2
  11. package/dist/cjs/src/types.js +0 -1
  12. package/dist/cjs/src/utils.js +36 -1
  13. package/dist/cjs/src/{verify.js → verification/common.js} +128 -155
  14. package/dist/cjs/src/verification/sszTypes.js +69 -0
  15. package/dist/cjs/src/verification/v1.6.0.js +149 -0
  16. package/dist/cjs/src/verification/v1.7.0.js +173 -0
  17. package/dist/cjs/src/verification/v1.8.0.js +183 -0
  18. package/dist/cjs/test/fixtures.js +281 -63
  19. package/dist/cjs/test/methods.test.js +58 -35
  20. package/dist/esm/package.json +128 -0
  21. package/dist/esm/src/ajv.js +2 -1
  22. package/dist/esm/src/base.js +2 -2
  23. package/dist/esm/src/constants.js +14 -12
  24. package/dist/esm/src/errors.js +1 -1
  25. package/dist/esm/src/index.js +27 -24
  26. package/dist/esm/src/schema.js +24 -36
  27. package/dist/esm/src/services.js +1 -1
  28. package/dist/esm/src/types.js +0 -1
  29. package/dist/esm/src/utils.js +34 -0
  30. package/dist/esm/src/{verify.js → verification/common.js} +114 -146
  31. package/dist/esm/src/verification/sszTypes.js +64 -0
  32. package/dist/esm/src/verification/v1.6.0.js +142 -0
  33. package/dist/esm/src/verification/v1.7.0.js +166 -0
  34. package/dist/esm/src/verification/v1.8.0.js +176 -0
  35. package/dist/esm/test/fixtures.js +280 -62
  36. package/dist/esm/test/methods.test.js +59 -36
  37. package/dist/types/src/ajv.d.ts +1 -1
  38. package/dist/types/src/base.d.ts +3 -3
  39. package/dist/types/src/constants.d.ts +8 -10
  40. package/dist/types/src/index.d.ts +16 -16
  41. package/dist/types/src/services.d.ts +1 -1
  42. package/dist/types/src/types.d.ts +33 -27
  43. package/dist/types/src/utils.d.ts +3 -0
  44. package/dist/types/src/verification/common.d.ts +32 -0
  45. package/dist/types/src/verification/sszTypes.d.ts +63 -0
  46. package/dist/types/src/verification/v1.6.0.d.ts +34 -0
  47. package/dist/types/src/verification/v1.7.0.d.ts +34 -0
  48. package/dist/types/src/verification/v1.8.0.d.ts +35 -0
  49. package/dist/types/test/fixtures.d.ts +104 -2
  50. package/package.json +42 -7
  51. package/src/ajv.ts +15 -10
  52. package/src/base.ts +25 -21
  53. package/src/constants.ts +80 -78
  54. package/src/errors.ts +6 -9
  55. package/src/index.ts +118 -81
  56. package/src/schema.ts +24 -36
  57. package/src/services.ts +15 -13
  58. package/src/types.ts +72 -74
  59. package/src/utils.ts +53 -4
  60. package/src/verification/common.ts +420 -0
  61. package/src/verification/sszTypes.ts +79 -0
  62. package/src/verification/v1.6.0.ts +226 -0
  63. package/src/verification/v1.7.0.ts +274 -0
  64. package/src/verification/v1.8.0.ts +281 -0
  65. package/dist/cjs/src/hash.js +0 -172
  66. package/dist/esm/src/hash.js +0 -165
  67. package/dist/types/src/hash.d.ts +0 -56
  68. package/dist/types/src/verify.d.ts +0 -4
  69. package/src/hash.ts +0 -250
  70. package/src/verify.ts +0 -479
@@ -1,98 +1,316 @@
1
+ export const enr = 'enr:-HW4QLlrtMjFLGkFT1bwdGbvZQlH8hLi0M2g44JAxEYP3BZmYpcsy9Q56HPPD87fMucjvLv4-obEFacpsg0ehRilbHeAgmlkgnY0iXNlY3AyNTZrMaEDRaa5o2aSgqyFq_ERZcQTztrOij1mFtXX1bJuVI6ieak';
2
+ // v1.6.0
3
+ export const clusterLockV1X6 = {
4
+ cluster_definition: {
5
+ name: 'test v.1.6',
6
+ creator: {
7
+ address: '0x86B8145c98e5BD25BA722645b15eD65f024a87EC',
8
+ config_signature: '0x705534bdce89175379a6c0e346d93adc1bfa41552bcb5cecfcc7b20c0663c6c1188aa09352b9085b2c7c0644d4506838234eebbbacba3caac2f6c227de050a821c',
9
+ },
10
+ operators: [
11
+ {
12
+ address: '0x86B8145c98e5BD25BA722645b15eD65f024a87EC',
13
+ enr: 'enr:-Iu4QCdreXm-iHrd2Y-QgLAHeGAkQSrZNvfPL-l6IuGEuKoMHnZsg93EgIWWOtcBzKs_-skexEKvY3CmcJ8SOzMIGMiAgmlkgnY0gmlwhH8AAAGJc2VjcDI1NmsxoQL4r6dX8heIruf3OW_hfcctLtsaX8roj8E-8s0-IpH9rYN0Y3CCDhqDdWRwgg4u',
14
+ config_signature: '0xbcbec314ce8a54c784069006dc23dd897696402487bdae982601ca1fdbc565af35a7d2e682f6051b3fe1c90f51ee5f908bec4d6a3ba0c29068316c85538d5e041c',
15
+ enr_signature: '0x1dc963f01eb794170e35a972ec8b487bdea2e3c1acbbe2fc2ab7936e7fe99e407583489a7dff3fbb08f4902e77867d795a7196a83d91b0a0eb8e50b8d96d35ba1c',
16
+ },
17
+ {
18
+ address: '0xC35CfCd67b9C27345a54EDEcC1033F2284148c81',
19
+ enr: 'enr:-Iu4QNbiUUUwT18LynBbVPJhNxvzQsaSpUr40mQTWscnZaqKb6vAlvV8j-eDDR3E0wjMQumGRbGm2IAb5_k4bVWJiVGAgmlkgnY0gmlwhH8AAAGJc2VjcDI1NmsxoQPOiodUji0ohgJb5sNK1hgv8g6xO5_znZz3NkkBkyYyKIN0Y3CCDhqDdWRwgg4u',
20
+ config_signature: '0xb95ccbca31a648a642ab2e273a0d66743921f0e9c67a5122fc229f0898ca4a1e7ac0b5b8698dfc6f3eccad7000f5aabc53666cd8b4cc7272abeb3f407571ac111c',
21
+ enr_signature: '0xb580f1380a62d299587357181561c8db8d67f4cc92d094b2ca3c84eddde3759567cfe60669b30ef55308a749c3c6a32f52148ac6b667cc6554f63a04c55350451b',
22
+ },
23
+ {
24
+ address: '0x33807D6F1DCe44b9C599fFE03640762A6F08C496',
25
+ enr: 'enr:-Iu4QJyserRukhG0Vgi2csu7GjpHYUGufNEbZ8Q7ZBrcZUb0KqpL5QzHonkh1xxHlxatTxrIcX_IS5J3SEWR_sa0ptGAgmlkgnY0gmlwhH8AAAGJc2VjcDI1NmsxoQMAUgEqczOjevyculnUIofhCj0DkgJudErM7qCYIvIkzIN0Y3CCDhqDdWRwgg4u',
26
+ config_signature: '0x59f7173b7f7eaa6f9a3619b508241ae4b8788ce64b23554eb2057b15d1570ed56ed25fd9d98321ffb6b30f119b8802f626f3ed78665b9b272e6f650412de37af1c',
27
+ enr_signature: '0xf63195e4238eac6d9deae5ec56626ac16a7a861294587c3ee144853ace76f8a2089980a2cbf17c72a8c5ac0651c6935d023db34fc0be58a91f0c70c26017597a1b',
28
+ },
29
+ {
30
+ address: '0xc6e76F72Ea672FAe05C357157CfC37720F0aF26f',
31
+ enr: 'enr:-HW4QKJTwXC6Chw6zbnA3HFZi6Jo0DkIgjKy4eUBpsSOGnAeWE6ChEjEyk_6R6Qrm7jI-iqfs3_HYxiKde8vFgvHHrCAgmlkgnY0iXNlY3AyNTZrMaECfFKQH4spdZCHqrKVz1Q02xYla6J_RQECDNNYBRWdzv8',
32
+ config_signature: '0x6458cc392ec9824a3713efb7469907b2ba9956b0729d1a080ef86bd092748f294e9a24e9176bfa95975c8426ea94159699df4f54b636708013a24b74483b30d91c',
33
+ enr_signature: '0x05d801705908933b7d1566f48f5726d36874423b1bbdd3f582e08c754220d211492b46ee434f1d1f5bd1507f80f9ca1df569354892e7d2eda87861bc2279be6e1c',
34
+ },
35
+ ],
36
+ uuid: 'f96771cf-290a-430f-8a8a-f999f5e9d35b',
37
+ version: 'v1.6.0',
38
+ timestamp: '2023-05-19T14:52:22.655Z',
39
+ num_validators: 1,
40
+ threshold: 3,
41
+ validators: [
42
+ {
43
+ fee_recipient_address: '0x86B8145c98e5BD25BA722645b15eD65f024a87EC',
44
+ withdrawal_address: '0x3C75594181e03E8ECD8468A0037F058a9dAfad79',
45
+ },
46
+ ],
47
+ dkg_algorithm: 'default',
48
+ fork_version: '0x00001020',
49
+ config_hash: '0xd50651bc2ae522e3d473a07ebf86c4486de0d479ce8881be0572019cf319a974',
50
+ definition_hash: '0xac4ffb5a5f50bbfafac4e320f52a63f77bf3ced1b78b00b5635f488d9efa8576',
51
+ },
52
+ distributed_validators: [
53
+ {
54
+ distributed_public_key: '0xa29529bcf747faedd53b4e1a8f6181ed55fad34f5eb3376ce65d444c0ecf79fab761bcd8607d12ad79f72bae537e6d38',
55
+ public_shares: [
56
+ '0x94cfd584f8b1ea26944d4339c19d8552a7fa4326dddc16a9f15a9ea962f2cdc09bf5b58f10f90de95afac218daa2fb93',
57
+ '0x95a727a6975e1eaad3504e6252a0840ad042ae0b46e8f7a8139341883e0d6d1e983dbf334a02efea93828daecb9fc9e7',
58
+ '0x8c38f9ed7cf995759a60f1d173671e420eb78d763ea139b7f3d5858283f9cbf05e682721330d2c6dc91389fe9db0397b',
59
+ '0xa36b7f0d46e29107c70350cb605bd22718c1c8af890dabed7c875e9c0c9f7727eb190b01e04ce16e1c954427ef4e8b56',
60
+ ],
61
+ deposit_data: {
62
+ pubkey: '0xa29529bcf747faedd53b4e1a8f6181ed55fad34f5eb3376ce65d444c0ecf79fab761bcd8607d12ad79f72bae537e6d38',
63
+ withdrawal_credentials: '0x0100000000000000000000003c75594181e03e8ecd8468a0037f058a9dafad79',
64
+ amount: '32000000000',
65
+ signature: '0x8a7ee66acd9d5200c26dd644f3275a2847dd000330d509a9a94f7338c4f38dc7533e2ad70f6a3f10339a2e74a5ac94c518ce62efb8b01eb46f4b44f853d74e194c9eb8c4af34f9a29d3ece7cfdd916c2d6b5013717919e5fe91dd95bd3ae4852',
66
+ },
67
+ },
68
+ ],
69
+ signature_aggregate: '0xb7f49e8eaa4015a3118deace6d17c9aef8a495b0ce460b0f1d27423101177000541a9d422fcc4eeedbaaa2497c555d8d0ba7ee882a5eaecfb89e7dcec2f2f3f5df78bc172e03be426c5f0835cbe58dac43e5812de5c21d2755693de2af80f491',
70
+ lock_hash: '0x6d2b38d098143c8f0bc5076f4e9b6081cbba040a5aea6649e6223e7a4131241b',
71
+ };
72
+ // v1.7.0
73
+ export const clusterConfigV1X7 = {
74
+ name: 'testSDK',
75
+ operators: [
76
+ { address: '0xC35CfCd67b9C27345a54EDEcC1033F2284148c81' },
77
+ { address: '0x33807D6F1DCe44b9C599fFE03640762A6F08C496' },
78
+ { address: '0xc6e76F72Ea672FAe05C357157CfC37720F0aF26f' },
79
+ { address: '0x86B8145c98e5BD25BA722645b15eD65f024a87EC' },
80
+ ],
81
+ validators: [
82
+ {
83
+ fee_recipient_address: '0x3CD4958e76C317abcEA19faDd076348808424F99',
84
+ withdrawal_address: '0xE0C5ceA4D3869F156717C66E188Ae81C80914a6e',
85
+ },
86
+ ],
87
+ };
1
88
  export const clusterLockV1X7 = {
2
89
  cluster_definition: {
3
- name: "v1.7.0 group test",
90
+ name: 'v1.7.0 group test',
4
91
  creator: {
5
- address: "0x86B8145c98e5BD25BA722645b15eD65f024a87EC",
6
- config_signature: "0x269aefc773de5fbfe41001cbd160b62747a27d76a92c8a6a7eae19d0f172c4b44d445ee0992e1ba6e271740a59051bf9cd8fda4042572bde75e40e8d28f7e6561b"
92
+ address: '0x86B8145c98e5BD25BA722645b15eD65f024a87EC',
93
+ config_signature: '0x269aefc773de5fbfe41001cbd160b62747a27d76a92c8a6a7eae19d0f172c4b44d445ee0992e1ba6e271740a59051bf9cd8fda4042572bde75e40e8d28f7e6561b',
7
94
  },
8
95
  operators: [
9
96
  {
10
- address: "0x86B8145c98e5BD25BA722645b15eD65f024a87EC",
11
- enr: "enr:-Iu4QCdreXm-iHrd2Y-QgLAHeGAkQSrZNvfPL-l6IuGEuKoMHnZsg93EgIWWOtcBzKs_-skexEKvY3CmcJ8SOzMIGMiAgmlkgnY0gmlwhH8AAAGJc2VjcDI1NmsxoQL4r6dX8heIruf3OW_hfcctLtsaX8roj8E-8s0-IpH9rYN0Y3CCDhqDdWRwgg4u",
12
- config_signature: "0x73bc8d23dee307a02791339300b6405573e686c22222d6e6c8fe349f52bb8c0620ea1ed476fe569ed8c8d21751893216b248eb28dd4de7aa263a234efe3129181b",
13
- enr_signature: "0x1dc963f01eb794170e35a972ec8b487bdea2e3c1acbbe2fc2ab7936e7fe99e407583489a7dff3fbb08f4902e77867d795a7196a83d91b0a0eb8e50b8d96d35ba1c"
97
+ address: '0x86B8145c98e5BD25BA722645b15eD65f024a87EC',
98
+ enr: 'enr:-Iu4QCdreXm-iHrd2Y-QgLAHeGAkQSrZNvfPL-l6IuGEuKoMHnZsg93EgIWWOtcBzKs_-skexEKvY3CmcJ8SOzMIGMiAgmlkgnY0gmlwhH8AAAGJc2VjcDI1NmsxoQL4r6dX8heIruf3OW_hfcctLtsaX8roj8E-8s0-IpH9rYN0Y3CCDhqDdWRwgg4u',
99
+ config_signature: '0x73bc8d23dee307a02791339300b6405573e686c22222d6e6c8fe349f52bb8c0620ea1ed476fe569ed8c8d21751893216b248eb28dd4de7aa263a234efe3129181b',
100
+ enr_signature: '0x1dc963f01eb794170e35a972ec8b487bdea2e3c1acbbe2fc2ab7936e7fe99e407583489a7dff3fbb08f4902e77867d795a7196a83d91b0a0eb8e50b8d96d35ba1c',
14
101
  },
15
102
  {
16
- address: "0xC35CfCd67b9C27345a54EDEcC1033F2284148c81",
17
- enr: "enr:-Iu4QNbiUUUwT18LynBbVPJhNxvzQsaSpUr40mQTWscnZaqKb6vAlvV8j-eDDR3E0wjMQumGRbGm2IAb5_k4bVWJiVGAgmlkgnY0gmlwhH8AAAGJc2VjcDI1NmsxoQPOiodUji0ohgJb5sNK1hgv8g6xO5_znZz3NkkBkyYyKIN0Y3CCDhqDdWRwgg4u",
18
- config_signature: "0x0ab6f58c612cd0c6af395769132fccc5c0804fd40cc395ae7ab2069a7aedb2884f2fa07a91eee57e13c3407dbeeb81b2256312d14006bdb1c19d4206b66899a41c",
19
- enr_signature: "0xb580f1380a62d299587357181561c8db8d67f4cc92d094b2ca3c84eddde3759567cfe60669b30ef55308a749c3c6a32f52148ac6b667cc6554f63a04c55350451b"
103
+ address: '0xC35CfCd67b9C27345a54EDEcC1033F2284148c81',
104
+ enr: 'enr:-Iu4QNbiUUUwT18LynBbVPJhNxvzQsaSpUr40mQTWscnZaqKb6vAlvV8j-eDDR3E0wjMQumGRbGm2IAb5_k4bVWJiVGAgmlkgnY0gmlwhH8AAAGJc2VjcDI1NmsxoQPOiodUji0ohgJb5sNK1hgv8g6xO5_znZz3NkkBkyYyKIN0Y3CCDhqDdWRwgg4u',
105
+ config_signature: '0x0ab6f58c612cd0c6af395769132fccc5c0804fd40cc395ae7ab2069a7aedb2884f2fa07a91eee57e13c3407dbeeb81b2256312d14006bdb1c19d4206b66899a41c',
106
+ enr_signature: '0xb580f1380a62d299587357181561c8db8d67f4cc92d094b2ca3c84eddde3759567cfe60669b30ef55308a749c3c6a32f52148ac6b667cc6554f63a04c55350451b',
20
107
  },
21
108
  {
22
- address: "0x33807D6F1DCe44b9C599fFE03640762A6F08C496",
23
- enr: "enr:-Iu4QJyserRukhG0Vgi2csu7GjpHYUGufNEbZ8Q7ZBrcZUb0KqpL5QzHonkh1xxHlxatTxrIcX_IS5J3SEWR_sa0ptGAgmlkgnY0gmlwhH8AAAGJc2VjcDI1NmsxoQMAUgEqczOjevyculnUIofhCj0DkgJudErM7qCYIvIkzIN0Y3CCDhqDdWRwgg4u",
24
- config_signature: "0x6f4f030aedba854cc4fa626171038e0125a93b3c3017af932d5b2a159076d0e17c1641f28cb58c29039e2c33074dd729c3198253ea17cc38074274f5e13676441b",
25
- enr_signature: "0xf63195e4238eac6d9deae5ec56626ac16a7a861294587c3ee144853ace76f8a2089980a2cbf17c72a8c5ac0651c6935d023db34fc0be58a91f0c70c26017597a1b"
109
+ address: '0x33807D6F1DCe44b9C599fFE03640762A6F08C496',
110
+ enr: 'enr:-Iu4QJyserRukhG0Vgi2csu7GjpHYUGufNEbZ8Q7ZBrcZUb0KqpL5QzHonkh1xxHlxatTxrIcX_IS5J3SEWR_sa0ptGAgmlkgnY0gmlwhH8AAAGJc2VjcDI1NmsxoQMAUgEqczOjevyculnUIofhCj0DkgJudErM7qCYIvIkzIN0Y3CCDhqDdWRwgg4u',
111
+ config_signature: '0x6f4f030aedba854cc4fa626171038e0125a93b3c3017af932d5b2a159076d0e17c1641f28cb58c29039e2c33074dd729c3198253ea17cc38074274f5e13676441b',
112
+ enr_signature: '0xf63195e4238eac6d9deae5ec56626ac16a7a861294587c3ee144853ace76f8a2089980a2cbf17c72a8c5ac0651c6935d023db34fc0be58a91f0c70c26017597a1b',
26
113
  },
27
114
  {
28
- address: "0xc6e76F72Ea672FAe05C357157CfC37720F0aF26f",
29
- enr: "enr:-HW4QKJTwXC6Chw6zbnA3HFZi6Jo0DkIgjKy4eUBpsSOGnAeWE6ChEjEyk_6R6Qrm7jI-iqfs3_HYxiKde8vFgvHHrCAgmlkgnY0iXNlY3AyNTZrMaECfFKQH4spdZCHqrKVz1Q02xYla6J_RQECDNNYBRWdzv8",
30
- config_signature: "0x8c09f7163c20cd0a2d28cb4fbfda22e93bc53bc537f6143407065922a25e40ab39f52b232ecb9241b3e1674f87a16d263181a17a80de55fb92b9659211428b581b",
31
- enr_signature: "0x05d801705908933b7d1566f48f5726d36874423b1bbdd3f582e08c754220d211492b46ee434f1d1f5bd1507f80f9ca1df569354892e7d2eda87861bc2279be6e1c"
32
- }
115
+ address: '0xc6e76F72Ea672FAe05C357157CfC37720F0aF26f',
116
+ enr: 'enr:-HW4QKJTwXC6Chw6zbnA3HFZi6Jo0DkIgjKy4eUBpsSOGnAeWE6ChEjEyk_6R6Qrm7jI-iqfs3_HYxiKde8vFgvHHrCAgmlkgnY0iXNlY3AyNTZrMaECfFKQH4spdZCHqrKVz1Q02xYla6J_RQECDNNYBRWdzv8',
117
+ config_signature: '0x8c09f7163c20cd0a2d28cb4fbfda22e93bc53bc537f6143407065922a25e40ab39f52b232ecb9241b3e1674f87a16d263181a17a80de55fb92b9659211428b581b',
118
+ enr_signature: '0x05d801705908933b7d1566f48f5726d36874423b1bbdd3f582e08c754220d211492b46ee434f1d1f5bd1507f80f9ca1df569354892e7d2eda87861bc2279be6e1c',
119
+ },
33
120
  ],
34
- uuid: "a1d642aa-07ed-4d48-9eda-0e70cb4bb03f",
35
- version: "v1.7.0",
36
- timestamp: "2023-07-18T10:36:04.505Z",
121
+ uuid: 'a1d642aa-07ed-4d48-9eda-0e70cb4bb03f',
122
+ version: 'v1.7.0',
123
+ timestamp: '2023-07-18T10:36:04.505Z',
37
124
  num_validators: 1,
38
125
  threshold: 3,
39
126
  validators: [
40
127
  {
41
- fee_recipient_address: "0x86B8145c98e5BD25BA722645b15eD65f024a87EC",
42
- withdrawal_address: "0x86B8145c98e5BD25BA722645b15eD65f024a87EC"
43
- }
128
+ fee_recipient_address: '0x86B8145c98e5BD25BA722645b15eD65f024a87EC',
129
+ withdrawal_address: '0x86B8145c98e5BD25BA722645b15eD65f024a87EC',
130
+ },
44
131
  ],
45
- dkg_algorithm: "default",
46
- fork_version: "0x00001020",
47
- config_hash: "0x4c3e37cbdb2fb850150f6e112c4ea03cdc388bff059081182659b3407183b431",
48
- definition_hash: "0xe7bf484f38a45c96e9a3fac60d3e39b88eeb9979fad983e06b0ec90e90aa20b3"
132
+ dkg_algorithm: 'default',
133
+ fork_version: '0x00001020',
134
+ config_hash: '0x4c3e37cbdb2fb850150f6e112c4ea03cdc388bff059081182659b3407183b431',
135
+ definition_hash: '0xe7bf484f38a45c96e9a3fac60d3e39b88eeb9979fad983e06b0ec90e90aa20b3',
49
136
  },
50
137
  distributed_validators: [
51
138
  {
52
- distributed_public_key: "0xb61b17f3b6425eb2636bc6378de0ed8aab918c3346b59d297828e7c74643d51e80edc2b41290c568614cfb80d2b0be34",
139
+ distributed_public_key: '0xb61b17f3b6425eb2636bc6378de0ed8aab918c3346b59d297828e7c74643d51e80edc2b41290c568614cfb80d2b0be34',
53
140
  public_shares: [
54
- "0xab6c1448221f664c145a4a574302fd4419ccfe1178487b2fa4629ee9fc2999c43188c96a52ad795074124a7eb0f63841",
55
- "0x8a2a265fbe9854b1532be335272717a5650e19ecc4d6ea54ed8d8d239200f5b860e5710f7a3b9f5d8a100782cbaf4ede",
56
- "0xa8a0aaf1119afe1c2b21d7dbf18bbe107586dc49028d285886c2e7f2bcf3f1c6817fff1250f4a4a370229a0266ea9bff",
57
- "0x93f62a042d304bbb316761712f5a39a9d549c71275e5d891afa3688b9224ebfa3bfd22f8b76f31d8ad88f65812b27dc3"
141
+ '0xab6c1448221f664c145a4a574302fd4419ccfe1178487b2fa4629ee9fc2999c43188c96a52ad795074124a7eb0f63841',
142
+ '0x8a2a265fbe9854b1532be335272717a5650e19ecc4d6ea54ed8d8d239200f5b860e5710f7a3b9f5d8a100782cbaf4ede',
143
+ '0xa8a0aaf1119afe1c2b21d7dbf18bbe107586dc49028d285886c2e7f2bcf3f1c6817fff1250f4a4a370229a0266ea9bff',
144
+ '0x93f62a042d304bbb316761712f5a39a9d549c71275e5d891afa3688b9224ebfa3bfd22f8b76f31d8ad88f65812b27dc3',
58
145
  ],
59
146
  deposit_data: {
60
- pubkey: "0xb61b17f3b6425eb2636bc6378de0ed8aab918c3346b59d297828e7c74643d51e80edc2b41290c568614cfb80d2b0be34",
61
- withdrawal_credentials: "0x01000000000000000000000086b8145c98e5bd25ba722645b15ed65f024a87ec",
62
- amount: "32000000000",
63
- signature: "0xae016c6c42daa8d1517d0e10370cf7882b28149635f734c5f3d83f781cd61f5df6d5203ec11bd0ca9d9e51c6030b66330476a93a65de6151d110e0f6482591f53678d863e55392e9cfb55fecac537edac51979790bcde38250a141348f116d46",
64
- deposit_data_root: 'fbada6c7c4cba867780eead34c1462339795fe9b417db466ce2f9d4822e8a4bb'
147
+ pubkey: '0xb61b17f3b6425eb2636bc6378de0ed8aab918c3346b59d297828e7c74643d51e80edc2b41290c568614cfb80d2b0be34',
148
+ withdrawal_credentials: '0x01000000000000000000000086b8145c98e5bd25ba722645b15ed65f024a87ec',
149
+ amount: '32000000000',
150
+ signature: '0xae016c6c42daa8d1517d0e10370cf7882b28149635f734c5f3d83f781cd61f5df6d5203ec11bd0ca9d9e51c6030b66330476a93a65de6151d110e0f6482591f53678d863e55392e9cfb55fecac537edac51979790bcde38250a141348f116d46',
65
151
  },
66
152
  builder_registration: {
67
153
  message: {
68
- fee_recipient: "0x86B8145c98e5BD25BA722645b15eD65f024a87EC",
154
+ fee_recipient: '0x86B8145c98e5BD25BA722645b15eD65f024a87EC',
69
155
  gas_limit: 30000000,
70
156
  timestamp: 1616508000,
71
- pubkey: "0xb61b17f3b6425eb2636bc6378de0ed8aab918c3346b59d297828e7c74643d51e80edc2b41290c568614cfb80d2b0be34"
157
+ pubkey: '0xb61b17f3b6425eb2636bc6378de0ed8aab918c3346b59d297828e7c74643d51e80edc2b41290c568614cfb80d2b0be34',
72
158
  },
73
- signature: "0xb1de0eeb44c3b9d598d50c8d48a676e45dd63a5a3040caa34e34ab8c60d0b2f079419d8699c97e76b641326845c99ee309096de1878547e370d4b82e2e4e580650fee2e46dc7b9b3bd805b7fe6f95ba6a9e2734c3ddd23bf6b1f5597e9a3f834"
74
- }
75
- }
159
+ signature: '0xb1de0eeb44c3b9d598d50c8d48a676e45dd63a5a3040caa34e34ab8c60d0b2f079419d8699c97e76b641326845c99ee309096de1878547e370d4b82e2e4e580650fee2e46dc7b9b3bd805b7fe6f95ba6a9e2734c3ddd23bf6b1f5597e9a3f834',
160
+ },
161
+ },
76
162
  ],
77
- signature_aggregate: "0x90c32196e4dda81b39faaaec283e3ec5620b7c25c1a35949d54eb53a7c1c5a3963614c0d147085d82f9c52f550556ba406c0c5c8a4cec3fec825e6663a8792a9205f1a36fdde3e8c810cfd8861963190dd9b9eadd9a803bd5765c0b93d146542",
78
- lock_hash: "0xdb19ef9c0677713f55502448b7c63d58fb25c81d34a5a8ce07a19bcfb3a9c0a0",
163
+ signature_aggregate: '0x90c32196e4dda81b39faaaec283e3ec5620b7c25c1a35949d54eb53a7c1c5a3963614c0d147085d82f9c52f550556ba406c0c5c8a4cec3fec825e6663a8792a9205f1a36fdde3e8c810cfd8861963190dd9b9eadd9a803bd5765c0b93d146542',
164
+ lock_hash: '0xdb19ef9c0677713f55502448b7c63d58fb25c81d34a5a8ce07a19bcfb3a9c0a0',
79
165
  node_signatures: [
80
- "0xa5230ba0586b21d49e790bc99304dc2245f8222c17d456ef60b848e3b0c5541d61825b2f9c2bda87ba3952979f28f6ba2338026603de74f925d9603aa823d42f01",
81
- "0xc22ac5dc3a6f98471f2f25d11fd48600f955f68cb940e9da6789ab8fc50ca1bf40c8fb3200132ad6b2c66be7e256979fe182f8f924506ad8ba2c827401038ec600",
82
- "0xebd08c9ece21abd78cfe82bc32eae68ccd77fc1e96e56ce93679918c5adcb2c92564a4fa609d7649587fbfb0c581403da8553e9e62c910e5ae589625704aa02b00",
83
- "0xa07fc8f89f32a5b2551cc2173b0486f86142ee2a67400d2d4a956a2b948da96b58adddf558db6ac84de62242b5e56b1a1e95d26451be3a922fe3929f2a367a7400"
84
- ]
166
+ '0xa5230ba0586b21d49e790bc99304dc2245f8222c17d456ef60b848e3b0c5541d61825b2f9c2bda87ba3952979f28f6ba2338026603de74f925d9603aa823d42f01',
167
+ '0xc22ac5dc3a6f98471f2f25d11fd48600f955f68cb940e9da6789ab8fc50ca1bf40c8fb3200132ad6b2c66be7e256979fe182f8f924506ad8ba2c827401038ec600',
168
+ '0xebd08c9ece21abd78cfe82bc32eae68ccd77fc1e96e56ce93679918c5adcb2c92564a4fa609d7649587fbfb0c581403da8553e9e62c910e5ae589625704aa02b00',
169
+ '0xa07fc8f89f32a5b2551cc2173b0486f86142ee2a67400d2d4a956a2b948da96b58adddf558db6ac84de62242b5e56b1a1e95d26451be3a922fe3929f2a367a7400',
170
+ ],
85
171
  };
86
- export const clusterConfig = {
87
- name: "testSDK",
172
+ // v1.8.0
173
+ export const clusterConfigV1X8 = {
174
+ name: 'testSDK',
88
175
  operators: [
89
- { address: "0xC35CfCd67b9C27345a54EDEcC1033F2284148c81" },
90
- { address: "0x33807D6F1DCe44b9C599fFE03640762A6F08C496" },
91
- { address: "0xc6e76F72Ea672FAe05C357157CfC37720F0aF26f" },
92
- { address: "0x86B8145c98e5BD25BA722645b15eD65f024a87EC" }
176
+ { address: '0xC35CfCd67b9C27345a54EDEcC1033F2284148c81' },
177
+ { address: '0x33807D6F1DCe44b9C599fFE03640762A6F08C496' },
178
+ { address: '0xc6e76F72Ea672FAe05C357157CfC37720F0aF26f' },
179
+ { address: '0x86B8145c98e5BD25BA722645b15eD65f024a87EC' },
180
+ ],
181
+ validators: [
182
+ {
183
+ fee_recipient_address: '0x3CD4958e76C317abcEA19faDd076348808424F99',
184
+ withdrawal_address: '0xE0C5ceA4D3869F156717C66E188Ae81C80914a6e',
185
+ },
93
186
  ],
94
- validators: [{
95
- fee_recipient_address: "0x3CD4958e76C317abcEA19faDd076348808424F99",
96
- withdrawal_address: "0xE0C5ceA4D3869F156717C66E188Ae81C80914a6e"
97
- }],
187
+ deposit_amounts: [
188
+ '8000000000',
189
+ '16000000000',
190
+ '8000000000'
191
+ ],
192
+ };
193
+ export const clusterLockV1X8 = {
194
+ cluster_definition: {
195
+ name: 'test cluster',
196
+ creator: {
197
+ address: '0x5050A4F4b3f9338C3472dcC01A87C76A144b3c9c',
198
+ config_signature: '0x03b41a12847064090333026a10bc0c6f9c51400e67b414fe74aa7df91388583d6bea930d525478e25d85aa49f3c649723e4158895fadd0e787fe8579d43c18cb00'
199
+ },
200
+ operators: [
201
+ {
202
+ address: '0x5050A4F4b3f9338C3472dcC01A87C76A144b3c9c',
203
+ enr: 'enr:-HW4QIHPUOMb34YoizKGhz7nsDNQ7hCaiuwyscmeaOQ04awdH05gDnGrZhxDfzcfHssCDeB-esi99A2RoZia6UaYBCuAgmlkgnY0iXNlY3AyNTZrMaECTUts0TYQMsqb0q652QCqTUXZ6tgKyUIzdMRRpyVNB2Y',
204
+ config_signature: '0xffafd355831aa993e5a019419403d61533649edc546b4f497bc305d7620dcb787756f9748be1ea76f7236692faeff7c1d2e7b06bf89894d07518de2d4ff45b4d00',
205
+ enr_signature: '0x20b5b4ba720053c6ea35a710cdd9d81440ae3a69c204edb06184ea2328ff3a290bd00c256d71f6f4daed2f995931b38c3f6bd0b17796f4e121278073e049086800'
206
+ },
207
+ {
208
+ address: '0x3325a78425F17a7E487Eb5666b2bFd93aBb06c70',
209
+ enr: 'enr:-HW4QDztNDqgEPAgJoHkcF4LfXyjXUo1r_xYoNv48H0PFItwYx-OnviqgfHxEz51RDOGvUMiTpXyo0HBjK5ZZ8YxS9WAgmlkgnY0iXNlY3AyNTZrMaECUx_mBoE0UD0nIxMyJ8hnrI-myDxTfppEw8W9vcsf4zc',
210
+ config_signature: '0x2053ba17731221d4ed919de72010b559a924143f74998c94b71e95cb1fdbe3a05ad0cbdf61cf174ef3509ce86bc03633f5215065d71f93bd15e1e506db71420e00',
211
+ enr_signature: '0x9aa50b499754e19b7e30e12d6b2d63abc916edc7810aae9f3427f7d2a3cc33ad10f84d638ccb73817cd6a6eee311a52d45ea24f0d0f5452dc845ef24749e71ca00'
212
+ },
213
+ {
214
+ address: '0xc48B812bB43401392c037381AcA934F4069C0517',
215
+ enr: 'enr:-HW4QGSS-HN3zRfCJGISFmDT59Cpo-daC4U2vSjqPZWegHVSJklFsDs0f1fF_E7X4q8NUbR3bWDlX7IifsjQ_Xrm7QuAgmlkgnY0iXNlY3AyNTZrMaEDRid5rUqtOVFGFHUacQhfLxDhx6WT5OAw77W4chzlWws',
216
+ config_signature: '0xa08dcb9c91fe562fb24862ba4ccd8ec881436e5563182d819d0eb1d1e4293ef40fd7e03094f5ed5c5165101cdb009ccab7eee813f01530f4f81a180d11f61cce01',
217
+ enr_signature: '0x6ecb15dda256fd34ea09a04db6c140387790d6902509df81fabab3889de4980f30c5d07480b12a0d4f3c6f75f56fe8c0f2b344311e092f53cd959367c5d67f7201'
218
+ }
219
+ ],
220
+ uuid: '8D019192-C242-24E2-CAFC-CAE3A61FB586',
221
+ version: 'v1.8.0',
222
+ timestamp: '2024-03-07T17:05:34+03:00',
223
+ num_validators: 2,
224
+ threshold: 3,
225
+ validators: [
226
+ {
227
+ fee_recipient_address: '0x52fdfc072182654f163f5f0f9a621d729566c74d',
228
+ withdrawal_address: '0x81855ad8681d0d86d1e91e00167939cb6694d2c4'
229
+ },
230
+ {
231
+ fee_recipient_address: '0xeb9d18a44784045d87f3c67cf22746e995af5a25',
232
+ withdrawal_address: '0x5fb90badb37c5821b6d95526a41a9504680b4e7c'
233
+ }
234
+ ],
235
+ dkg_algorithm: 'frost',
236
+ fork_version: '0x00001020',
237
+ deposit_amounts: [
238
+ '8000000000',
239
+ '16000000000',
240
+ '8000000000'
241
+ ],
242
+ config_hash: '0xe604bdf1649e2bcc5399149d4a683feacfc5678abe990d75e202791984208c53',
243
+ definition_hash: '0x123be6c24ec74366b0a318de42d36e09a43a08c3db72800698a958510c804a0b'
244
+ },
245
+ distributed_validators: [
246
+ {
247
+ distributed_public_key: '0x87382e8cc3e2c9c2d03ac1af7ae0bcc1be468c596a8a8b8059153ca9ce7746d459dd0603858e858355cb96d67a2a87a7',
248
+ public_shares: [
249
+ '0x804841f5b773b7cda35f2ceaacbd7b52afba38b6d65d5c4b3b1d3cdc905c21c0f7d1ac18cd4847b0cf56ac7ed41d5c19',
250
+ '0xac2362cbfdd573137a5f46727981363198c8a8b66eb29123014f3e1dee335132973973bddb4a4c592c8c74ff270b5982',
251
+ '0xb63dd0fb59a513b0f9f10ed3d88a54aa72c189faf2c2d2e4d66a81730a81a89d6feac0ff8e7b6b488c5131aa33845b47'
252
+ ],
253
+ builder_registration: {
254
+ message: {
255
+ fee_recipient: '0x52fdfc072182654f163f5f0f9a621d729566c74d',
256
+ gas_limit: 30000000,
257
+ timestamp: 1616508000,
258
+ pubkey: '0x87382e8cc3e2c9c2d03ac1af7ae0bcc1be468c596a8a8b8059153ca9ce7746d459dd0603858e858355cb96d67a2a87a7'
259
+ },
260
+ signature: '0x8a8085f002d0332c689baef8ecbab1ca3632e2536fa9f0587212f50429a4617d1cac1722b55d521ffb58424f6bc4f9640bdd1994e9abaff1fe00ea641aabf89249a8ed64aee5f7508a78dc9a6e2fa626cc707e5f9f94b9634084ea825c082b79'
261
+ },
262
+ partial_deposit_data: [
263
+ {
264
+ pubkey: '0x87382e8cc3e2c9c2d03ac1af7ae0bcc1be468c596a8a8b8059153ca9ce7746d459dd0603858e858355cb96d67a2a87a7',
265
+ withdrawal_credentials: '0x01000000000000000000000081855ad8681d0d86d1e91e00167939cb6694d2c4',
266
+ amount: '8000000000',
267
+ signature: '0x84614b278beed177d17f8e61ec6c4c4c17fb41adde71dedb5977ce19354a4ec24bed65021109d7d690d014fc531cf7040b3285877c8bfc35b1a2dd64fdbcab086132982fb036c31071824ea9ec6ca28ff6aaf86a425350c2bec8012b399342eb'
268
+ },
269
+ {
270
+ pubkey: '0x87382e8cc3e2c9c2d03ac1af7ae0bcc1be468c596a8a8b8059153ca9ce7746d459dd0603858e858355cb96d67a2a87a7',
271
+ withdrawal_credentials: '0x01000000000000000000000081855ad8681d0d86d1e91e00167939cb6694d2c4',
272
+ amount: '16000000000',
273
+ signature: '0xac5bcb369e8dde110604f6ae829a3432f82a99b0a996e15f4be6426acbe690a1aadb4b365d8b10a36737b2cd8c7f561214d4e4df3626cc9664f663111d15efbd8d18cffff5c3eff407fe2cc478244caea7f9f2afee83a0ae8aa2587365b8e54a'
274
+ }
275
+ ]
276
+ },
277
+ {
278
+ distributed_public_key: '0x90b5773dc3dc11480a7ebf68005980ca26be65fad6565ce655f0a9e24083a7ad2e22d7102368a8292fcd18021272a87a',
279
+ public_shares: [
280
+ '0x898c28241cb2386fdbfa26ee08fcc804ee953695741691d4f8c45a36f08dd319a09173a9ef632eb7a35f94ff9241cd8e',
281
+ '0xb7d73b8ea0d74dc7eb70f305c6666dd9dca749ea1084b25f942e0d0909211f6556c2955266a7ff54a204146676bf1c8c',
282
+ '0x8fbe3bb3c23e9dcb093ee45a28efc120ee2a923d4c62a0377d0a6ed7a3da8fa185456bbaec41e13fd84a2a410023a742'
283
+ ],
284
+ builder_registration: {
285
+ message: {
286
+ fee_recipient: '0xeb9d18a44784045d87f3c67cf22746e995af5a25',
287
+ gas_limit: 30000000,
288
+ timestamp: 1616508000,
289
+ pubkey: '0x90b5773dc3dc11480a7ebf68005980ca26be65fad6565ce655f0a9e24083a7ad2e22d7102368a8292fcd18021272a87a'
290
+ },
291
+ signature: '0xa941fcec27add0165a1bd76bb4b5d3a5f4e96e0e7b9a9edad4188dda914b97519c71f5964a467061cfee91f317eaa321174d5dbd8e94a6486c62e8bd10aad6ead7494696e2926b68fea446b9d868abde763a177083e87921d5e1b09c6b2aec2a'
292
+ },
293
+ partial_deposit_data: [
294
+ {
295
+ pubkey: '0x90b5773dc3dc11480a7ebf68005980ca26be65fad6565ce655f0a9e24083a7ad2e22d7102368a8292fcd18021272a87a',
296
+ withdrawal_credentials: '0x0100000000000000000000005fb90badb37c5821b6d95526a41a9504680b4e7c',
297
+ amount: '8000000000',
298
+ signature: '0x88b20e744a83679da4df81416358214f1e62535498b9ac38eb622b01cad2090554b2f1f7b3ac9032c15ccd31fffbb1cf0f5589b7703ecc4441e5bd7bf7c388ac1423c41b5c76cbee9969ffade054edcd1a883f80df813b52786393d318db007b'
299
+ },
300
+ {
301
+ pubkey: '0x90b5773dc3dc11480a7ebf68005980ca26be65fad6565ce655f0a9e24083a7ad2e22d7102368a8292fcd18021272a87a',
302
+ withdrawal_credentials: '0x0100000000000000000000005fb90badb37c5821b6d95526a41a9504680b4e7c',
303
+ amount: '16000000000',
304
+ signature: '0x94d9db7b4527e6eb308d387f168089a51d1deffc2c985faf1f7f8e82fbc9cb93c7f10c6a7bbca4fc25a1cfc95de28432037cf7727c1db0ad6d1fb0f1813d5904fba4ab8aebfeccfcded2f915bd48fb46155131b24adb0ba5e764d7ff6d3c82a5'
305
+ }
306
+ ]
307
+ }
308
+ ],
309
+ signature_aggregate: '0xb54fc9fcfe6827f519a29ff0a8bc9a06aafd197253a6def9f45bf79b023e71f3bd26bd0365f0beb7d60c1146e33be127161eb034af4a4de619e9d6971174224fdc18c04821d9e5b7abaeaedc01755b6e33addb2dc820aa361890a634a0252422',
310
+ lock_hash: '0x1f598e309b715ba0141034b495975e3bed0231ad92da49dfff462765049df671',
311
+ node_signatures: [
312
+ '0xf4317dc1f01738f84b2624866e8b4e85e92394fabb49218ef8a6dfe7ee4fdaab015742379328b173204504332a5e15450d5a127bbe8b8a2209cd9fa12b85cf4501',
313
+ '0x9e4726f7cce4cfad963eb04aaeec677fa7d1010d66640867d0ee11c75fad45dd6ad8fad9ad4a3c042bd1ab298a5598896b9de08acfde476f9aa65c48e3def7f901',
314
+ '0x54a89155ef4a6e319c0411f29963554fe551abce6d8463661cc5449a67243d053292f0190432cdcbcfc6e651815b093d55b4adbfc8c82f85ee1e1af798d9bae400'
315
+ ]
98
316
  };
@@ -9,42 +9,51 @@ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, ge
9
9
  };
10
10
  import { ethers } from 'ethers';
11
11
  import { Client, validateClusterLock } from '../src/index';
12
- import { clusterConfig, clusterLockV1X7 } from './fixtures.js';
12
+ import { clusterConfigV1X7, clusterLockV1X6, clusterLockV1X7, clusterLockV1X8 } from './fixtures.js';
13
13
  import { SDK_VERSION } from '../src/constants';
14
14
  import { Base } from '../src/base';
15
15
  import { validatePayload } from '../src/ajv';
16
16
  import { HttpResponse, http } from 'msw';
17
17
  import { setupServer } from 'msw/node';
18
+ /* eslint no-new: 0 */
18
19
  describe('Cluster Client', () => {
19
- var _a;
20
- const mockConfigHash = "0x1f6c94e6c070393a68c1aa6073a21cb1fd57f0e14d2a475a2958990ab728c2fd";
21
- const mnemonic = ((_a = ethers.Wallet.createRandom().mnemonic) === null || _a === void 0 ? void 0 : _a.phrase) || "";
20
+ var _a, _b;
21
+ const mockConfigHash = '0x1f6c94e6c070393a68c1aa6073a21cb1fd57f0e14d2a475a2958990ab728c2fd';
22
+ const mnemonic = (_b = (_a = ethers.Wallet.createRandom().mnemonic) === null || _a === void 0 ? void 0 : _a.phrase) !== null && _b !== void 0 ? _b : '';
22
23
  const privateKey = ethers.Wallet.fromPhrase(mnemonic).privateKey;
23
24
  const wallet = new ethers.Wallet(privateKey);
24
25
  const mockSigner = wallet.connect(null);
25
- const clientInstance = new Client({ baseUrl: "https://obol-api-dev.gcp.obol.tech", chainId: 5 }, mockSigner);
26
- test('throws invalid ChainId when it is equal to 1', () => __awaiter(void 0, void 0, void 0, function* () {
27
- try {
28
- new Client({ chainId: 1 }, mockSigner);
29
- }
30
- catch (error) {
31
- expect(error.message).toBe("Invalid ChainId");
32
- }
33
- }));
26
+ const clientInstance = new Client({ baseUrl: 'https://obol-api-dev.gcp.obol.tech', chainId: 5 }, mockSigner);
27
+ // test('throws invalid ChainId when it is equal to 1', async () => {
28
+ // try {
29
+ // new Client({ chainId: 1 }, mockSigner)
30
+ // } catch (error: any) {
31
+ // expect(error.message).toBe('Obol-SDK is in Beta phase, mainnet is not yet supported')
32
+ // }
33
+ // })
34
34
  test('createClusterDefinition should return config_hash', () => __awaiter(void 0, void 0, void 0, function* () {
35
- clientInstance['request'] = jest.fn().mockReturnValue(Promise.resolve({ config_hash: mockConfigHash }));
36
- const config_hash = yield clientInstance.createClusterDefinition(clusterConfig);
37
- expect(config_hash).toEqual(mockConfigHash);
35
+ clientInstance['request'] = jest
36
+ .fn()
37
+ .mockReturnValue(Promise.resolve({ config_hash: mockConfigHash }));
38
+ const configHash = yield clientInstance.createClusterDefinition(clusterConfigV1X7);
39
+ expect(configHash).toEqual(mockConfigHash);
38
40
  }));
39
41
  test('acceptClusterDefinition should return cluster definition', () => __awaiter(void 0, void 0, void 0, function* () {
40
- clientInstance['request'] = jest.fn().mockReturnValue(Promise.resolve(clusterLockV1X7.cluster_definition));
41
- const clusterDefinition = yield clientInstance.acceptClusterDefinition({ enr: clusterLockV1X7.cluster_definition.operators[0].enr, version: clusterLockV1X7.cluster_definition.version }, clusterLockV1X7.cluster_definition.config_hash);
42
+ clientInstance['request'] = jest
43
+ .fn()
44
+ .mockReturnValue(Promise.resolve(clusterLockV1X7.cluster_definition));
45
+ const clusterDefinition = yield clientInstance.acceptClusterDefinition({
46
+ enr: clusterLockV1X7.cluster_definition.operators[0].enr,
47
+ version: clusterLockV1X7.cluster_definition.version,
48
+ }, clusterLockV1X7.cluster_definition.config_hash);
42
49
  expect(clusterDefinition).toEqual(clusterLockV1X7.cluster_definition);
43
50
  }));
44
51
  test('createClusterDefinition should throw an error on invalid operators', () => __awaiter(void 0, void 0, void 0, function* () {
45
- clientInstance['request'] = jest.fn().mockReturnValue(Promise.resolve({ config_hash: mockConfigHash }));
52
+ clientInstance['request'] = jest
53
+ .fn()
54
+ .mockReturnValue(Promise.resolve({ config_hash: mockConfigHash }));
46
55
  try {
47
- yield clientInstance.createClusterDefinition(Object.assign(Object.assign({}, clusterConfig), { operators: [] }));
56
+ yield clientInstance.createClusterDefinition(Object.assign(Object.assign({}, clusterConfigV1X7), { operators: [] }));
48
57
  }
49
58
  catch (error) {
50
59
  expect(error.message).toEqual("Schema compilation errors', must NOT have fewer than 4 items");
@@ -52,19 +61,23 @@ describe('Cluster Client', () => {
52
61
  }));
53
62
  test('validatePayload should throw an error on empty schema', () => __awaiter(void 0, void 0, void 0, function* () {
54
63
  try {
55
- validatePayload(Object.assign(Object.assign({}, clusterConfig), { operators: [] }), "");
64
+ validatePayload(Object.assign(Object.assign({}, clusterConfigV1X7), { operators: [] }), '');
56
65
  }
57
66
  catch (error) {
58
- expect(error.message).toEqual("schema must be object or boolean");
67
+ expect(error.message).toEqual('schema must be object or boolean');
59
68
  }
60
69
  }));
61
70
  test('getClusterdefinition should return cluster definition if config hash exist', () => __awaiter(void 0, void 0, void 0, function* () {
62
- clientInstance['request'] = jest.fn().mockReturnValue(Promise.resolve(clusterLockV1X7.cluster_definition));
71
+ clientInstance['request'] = jest
72
+ .fn()
73
+ .mockReturnValue(Promise.resolve(clusterLockV1X7.cluster_definition));
63
74
  const clusterDefinition = yield clientInstance.getClusterDefinition(clusterLockV1X7.cluster_definition.config_hash);
64
75
  expect(clusterDefinition.config_hash).toEqual(clusterLockV1X7.cluster_definition.config_hash);
65
76
  }));
66
77
  test('getClusterLock should return lockFile if exist', () => __awaiter(void 0, void 0, void 0, function* () {
67
- clientInstance['request'] = jest.fn().mockReturnValue(Promise.resolve(clusterLockV1X7));
78
+ clientInstance['request'] = jest
79
+ .fn()
80
+ .mockReturnValue(Promise.resolve(clusterLockV1X7));
68
81
  const clusterLock = yield clientInstance.getClusterLock(clusterLockV1X7.cluster_definition.config_hash);
69
82
  expect(clusterLock.lock_hash).toEqual(clusterLockV1X7.lock_hash);
70
83
  }));
@@ -79,48 +92,58 @@ describe('Cluster Client', () => {
79
92
  class TestBase extends Base {
80
93
  callProtectedRequest(endpoint, options) {
81
94
  return __awaiter(this, void 0, void 0, function* () {
82
- return (yield this.request(endpoint, options));
95
+ return yield this['request'](endpoint, options);
83
96
  });
84
97
  }
85
98
  }
86
- const testBaseInstance = new TestBase({ baseUrl: "http://testExample.com" });
99
+ const testBaseInstance = new TestBase({ baseUrl: 'http://testExample.com' });
87
100
  const result = yield testBaseInstance.callProtectedRequest('/test', {
88
101
  method: 'GET',
89
102
  });
90
- expect(result === null || result === void 0 ? void 0 : result.message).toEqual("user-agent header exist");
103
+ expect(result === null || result === void 0 ? void 0 : result.message).toEqual('user-agent header exist');
91
104
  server.close();
92
105
  }));
93
106
  });
94
107
  describe('Cluster Client without a signer', () => {
95
- const clientInstance = new Client({ baseUrl: "https://obol-api-dev.gcp.obol.tech", chainId: 5 });
108
+ const clientInstance = new Client({
109
+ baseUrl: 'https://obol-api-dev.gcp.obol.tech',
110
+ chainId: 5,
111
+ });
96
112
  test('createClusterDefinition should throw an error without signer', () => __awaiter(void 0, void 0, void 0, function* () {
97
113
  try {
98
- yield clientInstance.createClusterDefinition(clusterConfig);
114
+ yield clientInstance.createClusterDefinition(clusterConfigV1X7);
99
115
  }
100
116
  catch (err) {
101
- expect(err).toEqual("Signer is required in createClusterDefinition");
117
+ expect(err.message).toEqual('Signer is required in createClusterDefinition');
102
118
  }
103
119
  }));
104
120
  test('acceptClusterDefinition should throw an error without signer', () => __awaiter(void 0, void 0, void 0, function* () {
105
121
  try {
106
- yield clientInstance.acceptClusterDefinition({ enr: clusterLockV1X7.cluster_definition.operators[0].enr, version: clusterLockV1X7.cluster_definition.version }, clusterLockV1X7.cluster_definition.config_hash);
122
+ yield clientInstance.acceptClusterDefinition({
123
+ enr: clusterLockV1X7.cluster_definition.operators[0].enr,
124
+ version: clusterLockV1X7.cluster_definition.version,
125
+ }, clusterLockV1X7.cluster_definition.config_hash);
107
126
  }
108
127
  catch (err) {
109
- expect(err).toEqual("Signer is required in acceptClusterDefinition");
128
+ expect(err.message).toEqual('Signer is required in acceptClusterDefinition');
110
129
  }
111
130
  }));
112
131
  test('getClusterdefinition should return cluster definition if config hash exist', () => __awaiter(void 0, void 0, void 0, function* () {
113
- clientInstance['request'] = jest.fn().mockReturnValue(Promise.resolve(clusterLockV1X7.cluster_definition));
132
+ clientInstance['request'] = jest
133
+ .fn()
134
+ .mockReturnValue(Promise.resolve(clusterLockV1X7.cluster_definition));
114
135
  const clusterDefinition = yield clientInstance.getClusterDefinition(clusterLockV1X7.cluster_definition.config_hash);
115
136
  expect(clusterDefinition.config_hash).toEqual(clusterLockV1X7.cluster_definition.config_hash);
116
137
  }));
117
138
  test('getClusterLock should return lockFile if exist', () => __awaiter(void 0, void 0, void 0, function* () {
118
- clientInstance['request'] = jest.fn().mockReturnValue(Promise.resolve(clusterLockV1X7));
139
+ clientInstance['request'] = jest
140
+ .fn()
141
+ .mockReturnValue(Promise.resolve(clusterLockV1X7));
119
142
  const clusterLock = yield clientInstance.getClusterLock(clusterLockV1X7.cluster_definition.config_hash);
120
143
  expect(clusterLock.lock_hash).toEqual(clusterLockV1X7.lock_hash);
121
144
  }));
122
- it('should return true on verified the cluster lock', () => __awaiter(void 0, void 0, void 0, function* () {
123
- const isValidLock = yield validateClusterLock(clusterLockV1X7);
145
+ test.each([{ version: 'v1.6.0', clusterLock: clusterLockV1X6 }, { version: 'v1.7.0', clusterLock: clusterLockV1X7 }, { version: 'v1.8.0', clusterLock: clusterLockV1X8 }])('$version: \'should return true on verified cluster lock\'', (_a) => __awaiter(void 0, [_a], void 0, function* ({ clusterLock }) {
146
+ const isValidLock = yield validateClusterLock(clusterLock);
124
147
  expect(isValidLock).toEqual(true);
125
148
  }));
126
149
  });
@@ -1,2 +1,2 @@
1
- import { ErrorObject } from 'ajv';
1
+ import { type ErrorObject } from 'ajv';
2
2
  export declare function validatePayload(data: any, schema: any): ErrorObject[] | undefined | null | boolean;
@@ -1,13 +1,13 @@
1
1
  import { FORK_MAPPING } from './types.js';
2
- type Config = {
2
+ interface Config {
3
3
  baseUrl?: string;
4
4
  chainId?: FORK_MAPPING;
5
- };
5
+ }
6
6
  export declare abstract class Base {
7
7
  baseUrl: string;
8
8
  chainId: number;
9
9
  fork_version: string;
10
- constructor({ baseUrl, chainId }: Config);
10
+ constructor({ baseUrl, chainId, }: Config);
11
11
  protected request<T>(endpoint: string, options?: RequestInit): Promise<T>;
12
12
  }
13
13
  export {};
@@ -1,4 +1,5 @@
1
- import { TypedMessage } from "@metamask/eth-sig-util";
1
+ import { type TypedMessage } from '@metamask/eth-sig-util';
2
+ import { type TypedDataDomain } from 'ethers';
2
3
  export declare const CONFLICT_ERROR_MSG = "Conflict";
3
4
  export declare const EIP712_DOMAIN_NAME = "Obol";
4
5
  export declare const EIP712_DOMAIN_VERSION = "1";
@@ -8,11 +9,7 @@ export declare const CreatorConfigHashSigningTypes: {
8
9
  type: string;
9
10
  }[];
10
11
  };
11
- export declare const Domain: (chainId: number) => {
12
- name: string;
13
- version: string;
14
- chainId: number;
15
- };
12
+ export declare const Domain: (chainId: number) => TypedDataDomain;
16
13
  export declare const CreatorTypedMessage: {
17
14
  CreatorConfigHash: {
18
15
  name: string;
@@ -64,9 +61,9 @@ export declare const signOperatorConfigHashPayload: (payload: {
64
61
  export declare const signEnrPayload: (payload: {
65
62
  enr: string;
66
63
  }, chainId: number) => TypedMessage<typeof ENRTypedMessage>;
67
- export declare const dkg_algorithm = "default";
68
- export declare const config_version = "v1.7.0";
69
- export declare const SDK_VERSION = "1.0.7";
64
+ export declare const DKG_ALGORITHM = "default";
65
+ export declare const CONFIG_VERSION = "v1.7.0";
66
+ export declare const SDK_VERSION: string;
70
67
  export declare const DOMAIN_APPLICATION_BUILDER = "00000001";
71
68
  export declare const DOMAIN_DEPOSIT = "03000000";
72
69
  export declare const GENESIS_VALIDATOR_ROOT = "0000000000000000000000000000000000000000000000000000000000000000";
@@ -76,4 +73,5 @@ export declare enum DefinitionFlow {
76
73
  Charon = "Charon-Command"
77
74
  }
78
75
  export declare const DEFAULT_BASE_URL = "https://api.obol.tech";
79
- export declare const DEFAULT_CHAIN_ID = 1;
76
+ export declare const DEFAULT_CHAIN_ID = 17000;
77
+ export declare const ETHER_TO_GWEI: number;