@obolnetwork/obol-sdk 2.2.1 → 2.2.3
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.
- package/README.md +5 -0
- package/dist/cjs/package.json +1 -1
- package/dist/cjs/src/index.js +1 -0
- package/dist/cjs/src/utils.js +1 -1
- package/dist/cjs/src/verification/common.js +32 -1
- package/dist/cjs/src/verification/v1.10.0.js +142 -0
- package/dist/cjs/test/fixtures.js +420 -1
- package/dist/cjs/test/methods.test.js +1 -0
- package/dist/esm/package.json +1 -1
- package/dist/esm/src/index.js +1 -0
- package/dist/esm/src/utils.js +1 -1
- package/dist/esm/src/verification/common.js +32 -1
- package/dist/esm/src/verification/v1.10.0.js +136 -0
- package/dist/esm/test/fixtures.js +419 -0
- package/dist/esm/test/methods.test.js +2 -1
- package/dist/types/src/index.d.ts +1 -0
- package/dist/types/src/types.d.ts +4 -0
- package/dist/types/src/verification/v1.10.0.d.ts +37 -0
- package/dist/types/test/fixtures.d.ts +53 -0
- package/package.json +1 -1
- package/src/index.ts +1 -0
- package/src/types.ts +6 -0
- package/src/utils.ts +1 -1
- package/src/verification/common.ts +41 -1
- package/src/verification/v1.10.0.ts +238 -0
|
@@ -0,0 +1,136 @@
|
|
|
1
|
+
import { UintNumberType, } from '@chainsafe/ssz/lib/type/uint';
|
|
2
|
+
import { strToUint8Array } from '../utils';
|
|
3
|
+
import { builderRegistrationContainer, depositDataContainer, newCreatorContainerType, newOperatorContainerType, validatorsContainerType, } from './sszTypes';
|
|
4
|
+
import { ByteListType, ByteVectorType, ContainerType, ListBasicType, ListCompositeType, fromHexString, } from '@chainsafe/ssz';
|
|
5
|
+
import { verifyDVV1X8 } from './v1.8.0';
|
|
6
|
+
/**
|
|
7
|
+
* Returns the containerized cluster definition
|
|
8
|
+
* @param cluster ClusterDefinition to calculate the type from
|
|
9
|
+
* @returns SSZ Containerized type of cluster input
|
|
10
|
+
*/
|
|
11
|
+
export const clusterDefinitionContainerTypeV1X10 = (configOnly) => {
|
|
12
|
+
let returnedContainerType = {
|
|
13
|
+
uuid: new ByteListType(64),
|
|
14
|
+
name: new ByteListType(256),
|
|
15
|
+
version: new ByteListType(16),
|
|
16
|
+
timestamp: new ByteListType(32),
|
|
17
|
+
num_validators: new UintNumberType(8),
|
|
18
|
+
threshold: new UintNumberType(8),
|
|
19
|
+
dkg_algorithm: new ByteListType(32),
|
|
20
|
+
fork_version: new ByteVectorType(4),
|
|
21
|
+
operators: new ListCompositeType(newOperatorContainerType(configOnly), 256),
|
|
22
|
+
creator: newCreatorContainerType(configOnly),
|
|
23
|
+
validators: new ListCompositeType(validatorsContainerType, 65536),
|
|
24
|
+
deposit_amounts: new ListBasicType(new UintNumberType(8), 256),
|
|
25
|
+
consensus_protocol: new ByteListType(256),
|
|
26
|
+
target_gas_limit: new UintNumberType(8),
|
|
27
|
+
};
|
|
28
|
+
if (!configOnly) {
|
|
29
|
+
returnedContainerType = Object.assign(Object.assign({}, returnedContainerType), { config_hash: new ByteVectorType(32) });
|
|
30
|
+
}
|
|
31
|
+
return new ContainerType(returnedContainerType);
|
|
32
|
+
};
|
|
33
|
+
export const hashClusterDefinitionV1X10 = (cluster, configOnly) => {
|
|
34
|
+
const definitionType = clusterDefinitionContainerTypeV1X10(configOnly);
|
|
35
|
+
const val = definitionType.defaultValue();
|
|
36
|
+
// order should be same as charon https://github.com/ObolNetwork/charon/blob/main/cluster/ssz.go#L276
|
|
37
|
+
val.uuid = strToUint8Array(cluster.uuid);
|
|
38
|
+
val.name = strToUint8Array(cluster.name);
|
|
39
|
+
val.version = strToUint8Array(cluster.version);
|
|
40
|
+
val.timestamp = strToUint8Array(cluster.timestamp);
|
|
41
|
+
val.num_validators = cluster.num_validators;
|
|
42
|
+
val.threshold = cluster.threshold;
|
|
43
|
+
val.dkg_algorithm = strToUint8Array(cluster.dkg_algorithm);
|
|
44
|
+
val.fork_version = fromHexString(cluster.fork_version);
|
|
45
|
+
val.operators = cluster.operators.map(operator => {
|
|
46
|
+
return configOnly
|
|
47
|
+
? { address: fromHexString(operator.address) }
|
|
48
|
+
: {
|
|
49
|
+
address: fromHexString(operator.address),
|
|
50
|
+
enr: strToUint8Array(operator.enr),
|
|
51
|
+
config_signature: fromHexString(operator.config_signature),
|
|
52
|
+
enr_signature: fromHexString(operator.enr_signature),
|
|
53
|
+
};
|
|
54
|
+
});
|
|
55
|
+
val.creator = configOnly
|
|
56
|
+
? { address: fromHexString(cluster.creator.address) }
|
|
57
|
+
: {
|
|
58
|
+
address: fromHexString(cluster.creator.address),
|
|
59
|
+
config_signature: fromHexString(cluster.creator.config_signature),
|
|
60
|
+
};
|
|
61
|
+
val.validators = cluster.validators.map(validator => {
|
|
62
|
+
return {
|
|
63
|
+
fee_recipient_address: fromHexString(validator.fee_recipient_address),
|
|
64
|
+
withdrawal_address: fromHexString(validator.withdrawal_address),
|
|
65
|
+
};
|
|
66
|
+
});
|
|
67
|
+
if (cluster.deposit_amounts) {
|
|
68
|
+
val.deposit_amounts = cluster.deposit_amounts.map((amount) => {
|
|
69
|
+
return parseInt(amount);
|
|
70
|
+
});
|
|
71
|
+
}
|
|
72
|
+
if (cluster.consensus_protocol) {
|
|
73
|
+
val.consensus_protocol = strToUint8Array(cluster.consensus_protocol);
|
|
74
|
+
}
|
|
75
|
+
if (cluster.target_gas_limit) {
|
|
76
|
+
val.target_gas_limit = cluster.target_gas_limit;
|
|
77
|
+
}
|
|
78
|
+
if (!configOnly) {
|
|
79
|
+
val.config_hash = fromHexString(cluster.config_hash);
|
|
80
|
+
}
|
|
81
|
+
return val;
|
|
82
|
+
};
|
|
83
|
+
// cluster lock
|
|
84
|
+
const dvContainerTypeV1X10 = new ContainerType({
|
|
85
|
+
distributed_public_key: new ByteVectorType(48),
|
|
86
|
+
public_shares: new ListCompositeType(new ByteVectorType(48), 256),
|
|
87
|
+
partial_deposit_data: new ListCompositeType(depositDataContainer, 256),
|
|
88
|
+
builder_registration: builderRegistrationContainer,
|
|
89
|
+
});
|
|
90
|
+
/**
|
|
91
|
+
* @returns SSZ Containerized type of cluster lock
|
|
92
|
+
*/
|
|
93
|
+
const clusterLockContainerTypeV1X10 = () => {
|
|
94
|
+
return new ContainerType({
|
|
95
|
+
cluster_definition: clusterDefinitionContainerTypeV1X10(false),
|
|
96
|
+
distributed_validators: new ListCompositeType(dvContainerTypeV1X10, 65536),
|
|
97
|
+
});
|
|
98
|
+
};
|
|
99
|
+
/**
|
|
100
|
+
* @param cluster The published cluster lock
|
|
101
|
+
* @returns The lock hash in of the corresponding cluster
|
|
102
|
+
*/
|
|
103
|
+
export const hashClusterLockV1X10 = (cluster) => {
|
|
104
|
+
const lockType = clusterLockContainerTypeV1X10();
|
|
105
|
+
const val = lockType.defaultValue();
|
|
106
|
+
// Check if we can replace with definition_hash
|
|
107
|
+
val.cluster_definition = hashClusterDefinitionV1X10(cluster.cluster_definition, false);
|
|
108
|
+
val.distributed_validators = cluster.distributed_validators.map(dValidator => {
|
|
109
|
+
var _a, _b, _c, _d, _e;
|
|
110
|
+
return {
|
|
111
|
+
distributed_public_key: fromHexString(dValidator.distributed_public_key),
|
|
112
|
+
public_shares: dValidator.public_shares.map(publicShare => fromHexString(publicShare)),
|
|
113
|
+
// should be fixed
|
|
114
|
+
partial_deposit_data: dValidator.partial_deposit_data.map(depositData => {
|
|
115
|
+
return {
|
|
116
|
+
pubkey: fromHexString(depositData.pubkey),
|
|
117
|
+
withdrawal_credentials: fromHexString(depositData.withdrawal_credentials),
|
|
118
|
+
amount: parseInt(depositData.amount),
|
|
119
|
+
signature: fromHexString(depositData.signature),
|
|
120
|
+
};
|
|
121
|
+
}),
|
|
122
|
+
builder_registration: {
|
|
123
|
+
message: {
|
|
124
|
+
fee_recipient: fromHexString((_a = dValidator.builder_registration) === null || _a === void 0 ? void 0 : _a.message.fee_recipient),
|
|
125
|
+
gas_limit: (_b = dValidator.builder_registration) === null || _b === void 0 ? void 0 : _b.message.gas_limit,
|
|
126
|
+
timestamp: (_c = dValidator.builder_registration) === null || _c === void 0 ? void 0 : _c.message.timestamp,
|
|
127
|
+
pubkey: fromHexString((_d = dValidator.builder_registration) === null || _d === void 0 ? void 0 : _d.message.pubkey),
|
|
128
|
+
},
|
|
129
|
+
signature: fromHexString((_e = dValidator.builder_registration) === null || _e === void 0 ? void 0 : _e.signature),
|
|
130
|
+
},
|
|
131
|
+
};
|
|
132
|
+
});
|
|
133
|
+
return '0x' + Buffer.from(lockType.hashTreeRoot(val).buffer).toString('hex');
|
|
134
|
+
};
|
|
135
|
+
// DV verification
|
|
136
|
+
export const verifyDVV1X10 = verifyDVV1X8;
|
|
@@ -507,3 +507,422 @@ export const clusterLockWithSafe = {
|
|
|
507
507
|
'0x4067921a5257efe4ceb103f2129faaa7a502781157b3b54e5efca559c558c2b43b89f30962e87df88fbf62250049a31888fcd62735d54b7553e5dc75c3b6ae0901',
|
|
508
508
|
],
|
|
509
509
|
};
|
|
510
|
+
export const clusterLockV1X10 = {
|
|
511
|
+
cluster_definition: {
|
|
512
|
+
name: 'example lock',
|
|
513
|
+
creator: {
|
|
514
|
+
address: '',
|
|
515
|
+
config_signature: '',
|
|
516
|
+
},
|
|
517
|
+
operators: [
|
|
518
|
+
{
|
|
519
|
+
address: '',
|
|
520
|
+
enr: 'enr:-HW4QJNtMzqCeJ-l-JN-uONrvfhSYkKCen2pRsNj2_pn8uNmNk4bxrzuPYeUjQHuTojaQt4ELS1CepOs4aGljEVqDZyAgmlkgnY0iXNlY3AyNTZrMaECF8sxcrJIbKqz0Dt8zZuQDAa0vCXNOb6WyGK3PNCZUDI',
|
|
521
|
+
config_signature: '',
|
|
522
|
+
enr_signature: '',
|
|
523
|
+
},
|
|
524
|
+
{
|
|
525
|
+
address: '',
|
|
526
|
+
enr: 'enr:-HW4QEj4LAV6Xev497wJVTaLop8Y2HlpW5RJLy-HkfT9Kjx-Z67IKK6tTqBKbXLbNN0MwQrGmVu1sw2JOeJkssxij2qAgmlkgnY0iXNlY3AyNTZrMaEDEoKd19TAME7YyO1cvoRreBy3vN1HoLRiCDmQAU0COxU',
|
|
527
|
+
config_signature: '',
|
|
528
|
+
enr_signature: '',
|
|
529
|
+
},
|
|
530
|
+
{
|
|
531
|
+
address: '',
|
|
532
|
+
enr: 'enr:-HW4QHd3-FamFyvFDHLFxHU6DssgXsMrnX6qeU_AS9fTbj9DaJQs_q9iI_pi8-ZkBnVSo7gsmlmoWLolZLCPl5yHA_yAgmlkgnY0iXNlY3AyNTZrMaECD_aXBgaLIUORjLGL_HocQtfs-TnIq9VAAeaVpuuBwwo',
|
|
533
|
+
config_signature: '',
|
|
534
|
+
enr_signature: '',
|
|
535
|
+
},
|
|
536
|
+
{
|
|
537
|
+
address: '',
|
|
538
|
+
enr: 'enr:-HW4QK9efd0AfPkPTi0TxNmspICmRG54f4HjPs3eN6e6n_BoPij_xg_Kb-x6M3VyOvl1ROy5X-3cS5lHo-FhBImATJCAgmlkgnY0iXNlY3AyNTZrMaECKFnfFst3gAbEwSfLbywjMLPEjy8hUTVCy6ksj-61uGw',
|
|
539
|
+
config_signature: '',
|
|
540
|
+
enr_signature: '',
|
|
541
|
+
},
|
|
542
|
+
],
|
|
543
|
+
uuid: '7D726A65-0AF6-7D4F-F10D-6F27A7ACE5C7',
|
|
544
|
+
version: 'v1.10.0',
|
|
545
|
+
timestamp: '2025-02-17T15:49:47Z',
|
|
546
|
+
num_validators: 10,
|
|
547
|
+
threshold: 3,
|
|
548
|
+
validators: [
|
|
549
|
+
{
|
|
550
|
+
fee_recipient_address: '0x0678D7f743842A8971B188E963D00Cb42D98495d',
|
|
551
|
+
withdrawal_address: '0x0678D7f743842A8971B188E963D00Cb42D98495d',
|
|
552
|
+
},
|
|
553
|
+
{
|
|
554
|
+
fee_recipient_address: '0x0678D7f743842A8971B188E963D00Cb42D98495d',
|
|
555
|
+
withdrawal_address: '0x0678D7f743842A8971B188E963D00Cb42D98495d',
|
|
556
|
+
},
|
|
557
|
+
{
|
|
558
|
+
fee_recipient_address: '0x0678D7f743842A8971B188E963D00Cb42D98495d',
|
|
559
|
+
withdrawal_address: '0x0678D7f743842A8971B188E963D00Cb42D98495d',
|
|
560
|
+
},
|
|
561
|
+
{
|
|
562
|
+
fee_recipient_address: '0x0678D7f743842A8971B188E963D00Cb42D98495d',
|
|
563
|
+
withdrawal_address: '0x0678D7f743842A8971B188E963D00Cb42D98495d',
|
|
564
|
+
},
|
|
565
|
+
{
|
|
566
|
+
fee_recipient_address: '0x0678D7f743842A8971B188E963D00Cb42D98495d',
|
|
567
|
+
withdrawal_address: '0x0678D7f743842A8971B188E963D00Cb42D98495d',
|
|
568
|
+
},
|
|
569
|
+
{
|
|
570
|
+
fee_recipient_address: '0x0678D7f743842A8971B188E963D00Cb42D98495d',
|
|
571
|
+
withdrawal_address: '0x0678D7f743842A8971B188E963D00Cb42D98495d',
|
|
572
|
+
},
|
|
573
|
+
{
|
|
574
|
+
fee_recipient_address: '0x0678D7f743842A8971B188E963D00Cb42D98495d',
|
|
575
|
+
withdrawal_address: '0x0678D7f743842A8971B188E963D00Cb42D98495d',
|
|
576
|
+
},
|
|
577
|
+
{
|
|
578
|
+
fee_recipient_address: '0x0678D7f743842A8971B188E963D00Cb42D98495d',
|
|
579
|
+
withdrawal_address: '0x0678D7f743842A8971B188E963D00Cb42D98495d',
|
|
580
|
+
},
|
|
581
|
+
{
|
|
582
|
+
fee_recipient_address: '0x0678D7f743842A8971B188E963D00Cb42D98495d',
|
|
583
|
+
withdrawal_address: '0x0678D7f743842A8971B188E963D00Cb42D98495d',
|
|
584
|
+
},
|
|
585
|
+
{
|
|
586
|
+
fee_recipient_address: '0x0678D7f743842A8971B188E963D00Cb42D98495d',
|
|
587
|
+
withdrawal_address: '0x0678D7f743842A8971B188E963D00Cb42D98495d',
|
|
588
|
+
},
|
|
589
|
+
],
|
|
590
|
+
dkg_algorithm: 'default',
|
|
591
|
+
fork_version: '0x01017000',
|
|
592
|
+
deposit_amounts: null,
|
|
593
|
+
consensus_protocol: '',
|
|
594
|
+
target_gas_limit: 36000000,
|
|
595
|
+
config_hash: '0x2700238afeaa957dacc43211cdf23905b612e6ed80bf0a599354a68b266c7baf',
|
|
596
|
+
definition_hash: '0x7915f44717bce28d9cd36125a239b3fd914d400c4dbb9c64881aba3cfa6d9ac5',
|
|
597
|
+
},
|
|
598
|
+
distributed_validators: [
|
|
599
|
+
{
|
|
600
|
+
distributed_public_key: '0xa29bd09509ffc5f362cbd5f10c5a9dba0d4802589b0664c42a5b2556501c0ad061fefa700a2ce0df7fc91af72eab4310',
|
|
601
|
+
public_shares: [
|
|
602
|
+
'0xaaf1632118dd7efe84a61b3d445e3b61f2de6fac9d87ab40fbb67898b0fb91796eb7a23e591b89b7c5f2f956a7b0650d',
|
|
603
|
+
'0x9409497283da0356a72b6650950f4844b2397b117fdb168ffff467ae0a672c40cdbeff4c4a328625e05c09dac279f607',
|
|
604
|
+
'0xb1342e2292acbd64e2be97c51ea6839aea24494f9d831f5b72f8a4cc6ac750b47c9a84dca8a254af2a4b62cdc4c9b907',
|
|
605
|
+
'0xa41a184fe8fc538133f44420a025a1f273db267a06afa3b9bf29c3f5d6faad94b45cd1e42320d6c97d0b7d7dc844d705',
|
|
606
|
+
],
|
|
607
|
+
builder_registration: {
|
|
608
|
+
message: {
|
|
609
|
+
fee_recipient: '0x0678d7f743842a8971b188e963d00cb42d98495d',
|
|
610
|
+
gas_limit: 36000000,
|
|
611
|
+
timestamp: 1696000704,
|
|
612
|
+
pubkey: '0xa29bd09509ffc5f362cbd5f10c5a9dba0d4802589b0664c42a5b2556501c0ad061fefa700a2ce0df7fc91af72eab4310',
|
|
613
|
+
},
|
|
614
|
+
signature: '0xa4ec7861b875dddb3a34bcf2421a1059e2ad932c18fd770433bc40384543f62469adcd1412d5f3b1b4067838ef976a25013d4e9dcc40acfd54e4e68aeb0600894d0534f29acbaad7e2c57dcd0eb5faefec8c9b6149d134e10a512139278d08ce',
|
|
615
|
+
},
|
|
616
|
+
partial_deposit_data: [
|
|
617
|
+
{
|
|
618
|
+
pubkey: '0xa29bd09509ffc5f362cbd5f10c5a9dba0d4802589b0664c42a5b2556501c0ad061fefa700a2ce0df7fc91af72eab4310',
|
|
619
|
+
withdrawal_credentials: '0x0200000000000000000000000678d7f743842a8971b188e963d00cb42d98495d',
|
|
620
|
+
amount: '1000000000',
|
|
621
|
+
signature: '0xa1517e300c9f415435c22209aaddb8964870b7d8c820ea7d4699ac97102591518706cea360deb6249f186f07e7b19da70508a6a82151b72449cb85282e982b910651930313499ff4c9eefccb5e9df1bf58b1fff5958d798e4a764ee0e95e56af',
|
|
622
|
+
},
|
|
623
|
+
{
|
|
624
|
+
pubkey: '0xa29bd09509ffc5f362cbd5f10c5a9dba0d4802589b0664c42a5b2556501c0ad061fefa700a2ce0df7fc91af72eab4310',
|
|
625
|
+
withdrawal_credentials: '0x0200000000000000000000000678d7f743842a8971b188e963d00cb42d98495d',
|
|
626
|
+
amount: '32000000000',
|
|
627
|
+
signature: '0xa28610e3eae820ccc5a43e609f37b2a642f02451c532111d141894be151c120825b8bb84b2acff684a7df7815d8182d518df3bc21570e822019dafb40b8ba7eb26db24233f717e9968dbbb17e2acac5e371036b853bc569159fc037758a12e14',
|
|
628
|
+
},
|
|
629
|
+
],
|
|
630
|
+
},
|
|
631
|
+
{
|
|
632
|
+
distributed_public_key: '0xb196c2559d6c6a61b2683c69f9d7ce187b5860dd1f315a159f023cadcb2844a67f082a71803af55faf0b1969ecd32598',
|
|
633
|
+
public_shares: [
|
|
634
|
+
'0x81d3169fe5d7b6258173d2c138190f04e6952970f9fd719103f5a77841fe0d96673ae3725e4d0bb1a7b5d1df8aaf846f',
|
|
635
|
+
'0xb4882f9d978c2aa5bd7d3366f7e0884d7eea3e5057d37723e5c888bb4a2ec145243cfbedb3e9560c8be3bddc48516eb5',
|
|
636
|
+
'0xa2000c765143b8ae368f33958db2b0430a182b791784e4f49f7422d8c014ccd25f516e43d6d0d187dab02a2d7bdbd56b',
|
|
637
|
+
'0xa64148bc168fa8c0fa9ab33066db7f38799678d76f789f29faee1fb11e1b44804ac7ebd4cdd67b593945d8b9d91f3087',
|
|
638
|
+
],
|
|
639
|
+
builder_registration: {
|
|
640
|
+
message: {
|
|
641
|
+
fee_recipient: '0x0678d7f743842a8971b188e963d00cb42d98495d',
|
|
642
|
+
gas_limit: 36000000,
|
|
643
|
+
timestamp: 1696000704,
|
|
644
|
+
pubkey: '0xb196c2559d6c6a61b2683c69f9d7ce187b5860dd1f315a159f023cadcb2844a67f082a71803af55faf0b1969ecd32598',
|
|
645
|
+
},
|
|
646
|
+
signature: '0x8ebc2b0db69c28a0dfed47e6e80e6e0b8655ff3df026afd65641d4061a94ca51e5167a61b1a0d68f630df031bb52445f032166656551f81f1ce650a8fee7ad3a22def957ca6b4ec18b2a020428d0c899e8eccedb05c5115fc37cf53befeb5367',
|
|
647
|
+
},
|
|
648
|
+
partial_deposit_data: [
|
|
649
|
+
{
|
|
650
|
+
pubkey: '0xb196c2559d6c6a61b2683c69f9d7ce187b5860dd1f315a159f023cadcb2844a67f082a71803af55faf0b1969ecd32598',
|
|
651
|
+
withdrawal_credentials: '0x0200000000000000000000000678d7f743842a8971b188e963d00cb42d98495d',
|
|
652
|
+
amount: '1000000000',
|
|
653
|
+
signature: '0xae9d45a4e8f1df6bb86a8c7780833256acd669c0610ffcd3255ccf18472fdaf0448b51f82a72a12db4ee1595f273f8cb115e0637f6bf2da8bdcb51956924609d826da800aa01a0e5a55be46e0b3459d92eb63f121f5dda7338574d153fa30535',
|
|
654
|
+
},
|
|
655
|
+
{
|
|
656
|
+
pubkey: '0xb196c2559d6c6a61b2683c69f9d7ce187b5860dd1f315a159f023cadcb2844a67f082a71803af55faf0b1969ecd32598',
|
|
657
|
+
withdrawal_credentials: '0x0200000000000000000000000678d7f743842a8971b188e963d00cb42d98495d',
|
|
658
|
+
amount: '32000000000',
|
|
659
|
+
signature: '0xa78bbbeece086cb5fe37dd1d4f350f83e396bfd773b6b58f0da94b3aec7196ecf9fe30d006aeb3c1b79ddd6ee53d0f9c03bafb3171f882be92c4d14586ac3e3262ad67ca522e3b729c896ad63c09628f34061796adc0575791e0e1906f480c37',
|
|
660
|
+
},
|
|
661
|
+
],
|
|
662
|
+
},
|
|
663
|
+
{
|
|
664
|
+
distributed_public_key: '0xaf6b1d71aec29a67f549a0c4da43d38c4c5240c17282d5d09c5aed4f34d4503a0867485f7f7459f7523db335245bd193',
|
|
665
|
+
public_shares: [
|
|
666
|
+
'0xa6eeabdbf9752b8fdedcc57899b2dffde3a45d8682236fcb89f5fe5c0bb82a1fefa6d0559275eb51721d28727a9e3110',
|
|
667
|
+
'0xb7464ec1b1338cd5c70432913b03d1ce69d90ee9975e8067142ed32498e3c5255199e534a25534ffecd04962e7974802',
|
|
668
|
+
'0xa63d83df66850086a4f6d4d4c36d43a1604802d1a4a9de55dc80e80a5ab67c78d9ec083fce70b4f16b35b6e912f4347b',
|
|
669
|
+
'0x8c9824f5b8352b73b1aeb95c18f70a6af6ad049c6a3710886d9b03fb5bdec049df869226dadd7d7b795d95fe77b3c2f4',
|
|
670
|
+
],
|
|
671
|
+
builder_registration: {
|
|
672
|
+
message: {
|
|
673
|
+
fee_recipient: '0x0678d7f743842a8971b188e963d00cb42d98495d',
|
|
674
|
+
gas_limit: 36000000,
|
|
675
|
+
timestamp: 1696000704,
|
|
676
|
+
pubkey: '0xaf6b1d71aec29a67f549a0c4da43d38c4c5240c17282d5d09c5aed4f34d4503a0867485f7f7459f7523db335245bd193',
|
|
677
|
+
},
|
|
678
|
+
signature: '0xa28a417a58eaa6ef62892f13c8d38af6e41d98096b072b46592e6b1c115ee825e059aa475138e35b3b7c329e7c2bcbd60973afb711902687e58ff492e89b961863a529fa885853f388206612aaa53d9a246e633cdb9efe88f795a62fe12a69be',
|
|
679
|
+
},
|
|
680
|
+
partial_deposit_data: [
|
|
681
|
+
{
|
|
682
|
+
pubkey: '0xaf6b1d71aec29a67f549a0c4da43d38c4c5240c17282d5d09c5aed4f34d4503a0867485f7f7459f7523db335245bd193',
|
|
683
|
+
withdrawal_credentials: '0x0200000000000000000000000678d7f743842a8971b188e963d00cb42d98495d',
|
|
684
|
+
amount: '1000000000',
|
|
685
|
+
signature: '0xb4978905968a1340075ba031d6527cc72fed83d672071b2c7cf72483e35971a16d9b236a5dbaaeda6d165bb79ad46d7c04738cd6498de31cf13257e760f5cd4235fd55614015cfc630922d830bd8cf2de6fc1357dbf2f0e7975c089f2d385c13',
|
|
686
|
+
},
|
|
687
|
+
{
|
|
688
|
+
pubkey: '0xaf6b1d71aec29a67f549a0c4da43d38c4c5240c17282d5d09c5aed4f34d4503a0867485f7f7459f7523db335245bd193',
|
|
689
|
+
withdrawal_credentials: '0x0200000000000000000000000678d7f743842a8971b188e963d00cb42d98495d',
|
|
690
|
+
amount: '32000000000',
|
|
691
|
+
signature: '0x95e9b2d7b85969220347c6e98e1e754d2137210c8a395f0991492e58402dfd94985f7294ec3e1a934a97c97b68812daf0ba4c9871076a3f681e3b599ac3e4f68615916b325ab236ba14f7ee4ae902d51f919e8caa66b5b9b4bab755f730ebea1',
|
|
692
|
+
},
|
|
693
|
+
],
|
|
694
|
+
},
|
|
695
|
+
{
|
|
696
|
+
distributed_public_key: '0xa4a55050ac22ede26a5382bcc8ee39fe4723212aca6e6d82f0b6ee7612b091661c7ef471616ee6991c32d728ca05ac80',
|
|
697
|
+
public_shares: [
|
|
698
|
+
'0x86577d10723191be29c214fcaefee042f8cdb7d999f9083bb3ed55d15313fb6bb00830165ce9070da79a782e4ab7b92b',
|
|
699
|
+
'0xac868ad9fb5bd6e62e7ffb4b9efee388ef528d121efc5a2ce80419f50398a6e3d8d28b8573d7abd8a0cea8274a5fa85b',
|
|
700
|
+
'0x81cd78ad2fdaa7c83d42183040762995e5c58f280307bda88072c0951d266a3df6bb31593a60cb84dfc320ada32e9cde',
|
|
701
|
+
'0x87691840c6e0d0393126deb50af960f365beb81bb3229adfc464b1bc74ce04baf6ec8208b71fb2cd182ea77ef97c748e',
|
|
702
|
+
],
|
|
703
|
+
builder_registration: {
|
|
704
|
+
message: {
|
|
705
|
+
fee_recipient: '0x0678d7f743842a8971b188e963d00cb42d98495d',
|
|
706
|
+
gas_limit: 36000000,
|
|
707
|
+
timestamp: 1696000704,
|
|
708
|
+
pubkey: '0xa4a55050ac22ede26a5382bcc8ee39fe4723212aca6e6d82f0b6ee7612b091661c7ef471616ee6991c32d728ca05ac80',
|
|
709
|
+
},
|
|
710
|
+
signature: '0xb3ab9972d6b940ad1041d601c11dddc411c5818d0ec1edbbb229838af8a879b6a304ed17e56cc849a4ad3a3369210d8b0c28de86d1db9ae14f80ea1703e21e4a5f8c98df1f51515647b81fa11ad30495c66b89fb6f724bb4e149f3cd1b084de5',
|
|
711
|
+
},
|
|
712
|
+
partial_deposit_data: [
|
|
713
|
+
{
|
|
714
|
+
pubkey: '0xa4a55050ac22ede26a5382bcc8ee39fe4723212aca6e6d82f0b6ee7612b091661c7ef471616ee6991c32d728ca05ac80',
|
|
715
|
+
withdrawal_credentials: '0x0200000000000000000000000678d7f743842a8971b188e963d00cb42d98495d',
|
|
716
|
+
amount: '1000000000',
|
|
717
|
+
signature: '0x858cea17b45ed31df1de2df1f190fca0088a6b7d74eb38e2a886fe34446c94aa8b6e3d274e50598f20e0a555d2092c740b39322642de7ce7ed1491f999fd061c105a82ac1c3165c3f223de7b8d99329b8457f39cb41cdd7ed876575dae4dcb14',
|
|
718
|
+
},
|
|
719
|
+
{
|
|
720
|
+
pubkey: '0xa4a55050ac22ede26a5382bcc8ee39fe4723212aca6e6d82f0b6ee7612b091661c7ef471616ee6991c32d728ca05ac80',
|
|
721
|
+
withdrawal_credentials: '0x0200000000000000000000000678d7f743842a8971b188e963d00cb42d98495d',
|
|
722
|
+
amount: '32000000000',
|
|
723
|
+
signature: '0xb3f922804f8c868beeb5cceb584ec9cb599af309272d6d60b6a7ea5d8ede143d2d09a5c0be6fd3a999c4e7db0ef23210194e9a9c6dda4cae73facb86f68ccd4a59dcf5ea0631afd93fc1ae6dba3b51e56439d2a7be6fcfff545666524eed772c',
|
|
724
|
+
},
|
|
725
|
+
],
|
|
726
|
+
},
|
|
727
|
+
{
|
|
728
|
+
distributed_public_key: '0xabfc595bba9191aa8967678fc45843cf361b355bfb04ee29b1841a124f845cea1f0fd65829bffdedd3d15f48e0537006',
|
|
729
|
+
public_shares: [
|
|
730
|
+
'0xb6103288e5c889f4167b573e6e3577bfef79b0721d6901496915bf1b4a16134f3ffb69ffe682e1722227b9985b5469d6',
|
|
731
|
+
'0x80c40fe7122e00c3a0ea1ec1182dc6e634b8eb12129edf91a3bf39901a2d918acc2f55ea65072934e102e9b83f1b2cf5',
|
|
732
|
+
'0x83051a711d2b294c1330050b98e6bdc7112c668d2ebe3b6cc02f7a8aceceae355a88d777b5cef9c1c8d374a732d25690',
|
|
733
|
+
'0xa2020bbc227f75fc9d15afa33a8bee48c3e407373a3497aecff73ab5260232be99f1c0a141e1c410998a6d3d5efba0e5',
|
|
734
|
+
],
|
|
735
|
+
builder_registration: {
|
|
736
|
+
message: {
|
|
737
|
+
fee_recipient: '0x0678d7f743842a8971b188e963d00cb42d98495d',
|
|
738
|
+
gas_limit: 36000000,
|
|
739
|
+
timestamp: 1696000704,
|
|
740
|
+
pubkey: '0xabfc595bba9191aa8967678fc45843cf361b355bfb04ee29b1841a124f845cea1f0fd65829bffdedd3d15f48e0537006',
|
|
741
|
+
},
|
|
742
|
+
signature: '0x89ba92023febda1ce85596f1014faf2e0f0a7de6d4c34a898e0b134c7e945cd2209ec3f04bfb898d7b5873f60b134eda095474ff1b6839c4d3e38e7389b76131857822be0797038f3f6b1d2393c169d1236ed9603ee12afe8160eef573b4f95c',
|
|
743
|
+
},
|
|
744
|
+
partial_deposit_data: [
|
|
745
|
+
{
|
|
746
|
+
pubkey: '0xabfc595bba9191aa8967678fc45843cf361b355bfb04ee29b1841a124f845cea1f0fd65829bffdedd3d15f48e0537006',
|
|
747
|
+
withdrawal_credentials: '0x0200000000000000000000000678d7f743842a8971b188e963d00cb42d98495d',
|
|
748
|
+
amount: '1000000000',
|
|
749
|
+
signature: '0x91220bfd317b5a5749141b3e2b559e3dc457f5a82bc19d72816469e75cdaac3130e5b878b00aeed752025ad2b628511f0d928deae63997a576e50f6fd29c851c7a37b8e73753589464b26806c7a7ed22adf2d770a4c48cf47f0ce9bad0648557',
|
|
750
|
+
},
|
|
751
|
+
{
|
|
752
|
+
pubkey: '0xabfc595bba9191aa8967678fc45843cf361b355bfb04ee29b1841a124f845cea1f0fd65829bffdedd3d15f48e0537006',
|
|
753
|
+
withdrawal_credentials: '0x0200000000000000000000000678d7f743842a8971b188e963d00cb42d98495d',
|
|
754
|
+
amount: '32000000000',
|
|
755
|
+
signature: '0x8e085bea5fb0328d594ad5919b065b5eef07d191d0cb77c431145165e0217f4ea4462a9c24f80b213031c3f6cd25c61c0d5b67480d92f6c402083b84ef056377c9bd2d5bf3c5e1105a45d82110492d809994067672f460e950fbcfed7bec2b64',
|
|
756
|
+
},
|
|
757
|
+
],
|
|
758
|
+
},
|
|
759
|
+
{
|
|
760
|
+
distributed_public_key: '0x8903a3bfea54bece2a094f0b32200f11000b53b7c9c51af670350f5b59c803564d6daa4685fd57bd2fbab00c0eef2db1',
|
|
761
|
+
public_shares: [
|
|
762
|
+
'0xb277a594864fe70e03882c8a4da57e898f8dfdb53bf9d50055c7b0463c3234a7c33cfc7a5912e2ee935e001e56a93ac0',
|
|
763
|
+
'0xa5f8a06dadd4d590d6a12c299862b9753e7cd40bb35e2301c1b70818032b2a6d6b5f791811822391e06b846f5dff49e4',
|
|
764
|
+
'0xa27e43e26e406b6eba609c23ffa15a2e342595aeb255b15a122bbe83474f8bdbd99d463129ea3553b5edebdd42b91a25',
|
|
765
|
+
'0x884456ab08879a07d36aa7127ad3b6a9e1efc9fc8a2edac842f9bd92dbe147ee30b2540c67464a2775db55670dbfbd90',
|
|
766
|
+
],
|
|
767
|
+
builder_registration: {
|
|
768
|
+
message: {
|
|
769
|
+
fee_recipient: '0x0678d7f743842a8971b188e963d00cb42d98495d',
|
|
770
|
+
gas_limit: 36000000,
|
|
771
|
+
timestamp: 1696000704,
|
|
772
|
+
pubkey: '0x8903a3bfea54bece2a094f0b32200f11000b53b7c9c51af670350f5b59c803564d6daa4685fd57bd2fbab00c0eef2db1',
|
|
773
|
+
},
|
|
774
|
+
signature: '0xb57df3ed71970f51d8f16577c4285ffab19d8cf9ec7e39fe6ccb41d02a0f97725b6b9dd53a08684633d047c8accd1b1310286db798bf1432ffc6252510dd0108393c4cfe517c4d5cdcbca7468cb4d1c36ad1f4d375e137eb428947039e00ee07',
|
|
775
|
+
},
|
|
776
|
+
partial_deposit_data: [
|
|
777
|
+
{
|
|
778
|
+
pubkey: '0x8903a3bfea54bece2a094f0b32200f11000b53b7c9c51af670350f5b59c803564d6daa4685fd57bd2fbab00c0eef2db1',
|
|
779
|
+
withdrawal_credentials: '0x0200000000000000000000000678d7f743842a8971b188e963d00cb42d98495d',
|
|
780
|
+
amount: '1000000000',
|
|
781
|
+
signature: '0xb117b392658024d3186ebb1ae05a504d121d6d5bb7e7202546585ec568c91f16721291d84a5b823fa0b843eaf73e7aa0157e99cf295de8f4da1025a724fd6839944319d249662bcafd4e5741bb6612f9bae4dcf33f77fe1346916403903e9770',
|
|
782
|
+
},
|
|
783
|
+
{
|
|
784
|
+
pubkey: '0x8903a3bfea54bece2a094f0b32200f11000b53b7c9c51af670350f5b59c803564d6daa4685fd57bd2fbab00c0eef2db1',
|
|
785
|
+
withdrawal_credentials: '0x0200000000000000000000000678d7f743842a8971b188e963d00cb42d98495d',
|
|
786
|
+
amount: '32000000000',
|
|
787
|
+
signature: '0xb9c7bca45073392af87964f6d71af90538b091b9a64075504143fe3191b1379e1f75953754b98f3327ca11315cfa5c251487c0f40f34533f5cd742d9c971fdf8b8bdca4653684500bc415287010b88a46f6accd88e4221732a33b2324555e844',
|
|
788
|
+
},
|
|
789
|
+
],
|
|
790
|
+
},
|
|
791
|
+
{
|
|
792
|
+
distributed_public_key: '0x982d31edf85a4e2c29c62847b6ed1763f4b9bfcc2856670e874ae3a070abfd98935a38990cca4f64bfbcab0a54c04c9f',
|
|
793
|
+
public_shares: [
|
|
794
|
+
'0x9075526824bf7179c533486f08a9a082d7370a64f23bc8de86e58e674573a780fbf704d94b954c068ee63406d9014912',
|
|
795
|
+
'0xb6718f7d2558153b99724ab442dd583c840fd8cf752c37b3ab586ed050a7514711f8ac2ff48f06f0ca893ad3b8a543ae',
|
|
796
|
+
'0xa66ba35304358d96b34ca79ccb6a969b67f2578de038bce5c41d1ab6e8cfdf34e5fa383fb32dbd4058e821e922ff6f0b',
|
|
797
|
+
'0x8fa6f6966534e7a91ae03db663bfba571f9a4ff2dbbb57592b177011667b5f0dd7f8ab676cfa7f48f8d1ece5c1cbfbb2',
|
|
798
|
+
],
|
|
799
|
+
builder_registration: {
|
|
800
|
+
message: {
|
|
801
|
+
fee_recipient: '0x0678d7f743842a8971b188e963d00cb42d98495d',
|
|
802
|
+
gas_limit: 36000000,
|
|
803
|
+
timestamp: 1696000704,
|
|
804
|
+
pubkey: '0x982d31edf85a4e2c29c62847b6ed1763f4b9bfcc2856670e874ae3a070abfd98935a38990cca4f64bfbcab0a54c04c9f',
|
|
805
|
+
},
|
|
806
|
+
signature: '0xa0510be1b9bf6c9f97407626c9b380e9bafe1ed96b2261e0f225677f1ac9efe2cdb2b56d629e8bc086095e3ad2a60295177345503e5f14a6df57fed30dc24ce074bfa24f2439482ce141879c53b49275c8f8d109e445b9e36033a6c09701c202',
|
|
807
|
+
},
|
|
808
|
+
partial_deposit_data: [
|
|
809
|
+
{
|
|
810
|
+
pubkey: '0x982d31edf85a4e2c29c62847b6ed1763f4b9bfcc2856670e874ae3a070abfd98935a38990cca4f64bfbcab0a54c04c9f',
|
|
811
|
+
withdrawal_credentials: '0x0200000000000000000000000678d7f743842a8971b188e963d00cb42d98495d',
|
|
812
|
+
amount: '1000000000',
|
|
813
|
+
signature: '0xb7e4c2ee9690cd281ad9dcabf0ea7586c732aed7e027eecee3d5a5610fa46637a56588c1ee3aa8e5a0ac91994aac2e70103ebe8d3bfa2413dd98f8fc79a1e09d1e768e59e1d52f4241959f49026c23d11f8f3bab658c6022094294f7b745b280',
|
|
814
|
+
},
|
|
815
|
+
{
|
|
816
|
+
pubkey: '0x982d31edf85a4e2c29c62847b6ed1763f4b9bfcc2856670e874ae3a070abfd98935a38990cca4f64bfbcab0a54c04c9f',
|
|
817
|
+
withdrawal_credentials: '0x0200000000000000000000000678d7f743842a8971b188e963d00cb42d98495d',
|
|
818
|
+
amount: '32000000000',
|
|
819
|
+
signature: '0x9164396591df8bd49b9cfea0a19f5445e0c14e6e49c63fe38e00e4acc66cadf4b9073a37721fb9939b9df636e64cff710f91365d982e08e81842922122fe2d49469361d971550ea8a71d1389c747c01e672b64e89cea385e962a52e7998f0967',
|
|
820
|
+
},
|
|
821
|
+
],
|
|
822
|
+
},
|
|
823
|
+
{
|
|
824
|
+
distributed_public_key: '0x8cec3bdc06a20450f3137355759efd7af9e21faebb7ea3f6f29f4a459cc6f44b1f026938475d00383e5e9d4b6cca517d',
|
|
825
|
+
public_shares: [
|
|
826
|
+
'0xb7ea8aa6504bd4ad7615f0878ccdd24d349135bab3b3be57d90953e6c33c1291c6417ce9da2882529b79afae48858817',
|
|
827
|
+
'0xb7f710b736344713eb017f6d5a5c6253f47b7cb725bfc3760e64cef1c66c04c0eecc56f9dbcec910d25d6f25b765eafd',
|
|
828
|
+
'0xa1b8221d72e55096b6588021055791e460e604c02a88d773f2adbf9c8a784cb52c3230796442ea1c003d34b4f6bed89f',
|
|
829
|
+
'0xaf56808edfb9399959f05a824105b49caece347f12485fa089c5f42c259cf482fcd88ef7fc5190229bbec2886b76d2ef',
|
|
830
|
+
],
|
|
831
|
+
builder_registration: {
|
|
832
|
+
message: {
|
|
833
|
+
fee_recipient: '0x0678d7f743842a8971b188e963d00cb42d98495d',
|
|
834
|
+
gas_limit: 36000000,
|
|
835
|
+
timestamp: 1696000704,
|
|
836
|
+
pubkey: '0x8cec3bdc06a20450f3137355759efd7af9e21faebb7ea3f6f29f4a459cc6f44b1f026938475d00383e5e9d4b6cca517d',
|
|
837
|
+
},
|
|
838
|
+
signature: '0xb22bed0c097bea7f709a5b07a488db105ab97aadb29a962a64d4b873a5cba025bccc2204b0fd2c963e9ba9fb62c921b00836bb27d0122fca483c97f3709802d5c7bfc5997e05306d555ef015e83c2649996d72a1fab6b003fa572d37dba5a6a0',
|
|
839
|
+
},
|
|
840
|
+
partial_deposit_data: [
|
|
841
|
+
{
|
|
842
|
+
pubkey: '0x8cec3bdc06a20450f3137355759efd7af9e21faebb7ea3f6f29f4a459cc6f44b1f026938475d00383e5e9d4b6cca517d',
|
|
843
|
+
withdrawal_credentials: '0x0200000000000000000000000678d7f743842a8971b188e963d00cb42d98495d',
|
|
844
|
+
amount: '1000000000',
|
|
845
|
+
signature: '0xa9a9fb8b74c2ec7f6fce1c3ab5b18450199f73f82bb3876759b9cbe6188fa57eeedb072e198ad5d6e50343bac28a6fe4005d4487a8ecc0d20ba0b8ab50cdb2b88eb74edb204ac97a666f166e5c8fca144028265dd1e8e25103568b508f8cb707',
|
|
846
|
+
},
|
|
847
|
+
{
|
|
848
|
+
pubkey: '0x8cec3bdc06a20450f3137355759efd7af9e21faebb7ea3f6f29f4a459cc6f44b1f026938475d00383e5e9d4b6cca517d',
|
|
849
|
+
withdrawal_credentials: '0x0200000000000000000000000678d7f743842a8971b188e963d00cb42d98495d',
|
|
850
|
+
amount: '32000000000',
|
|
851
|
+
signature: '0xa82a1bdb4af68cc5432796185aa31eec3b19a0350d2af2ec737293cd1512e652beeff817aaa4ef2def7acd5c3b3ea4ab12264f1cb580ca94f91d8462cd2c79bbfb7c6fd33dd7075a2a758e508850a6fe1632126f99901eb0d8c47a5b15bd3dc1',
|
|
852
|
+
},
|
|
853
|
+
],
|
|
854
|
+
},
|
|
855
|
+
{
|
|
856
|
+
distributed_public_key: '0xa4b5fab5061fc9ef70f9d2b49a67020b18a363189087b8e8a2a496b284dff50af1e5f94ec185de2cbaaf3e5083ee49ac',
|
|
857
|
+
public_shares: [
|
|
858
|
+
'0xa148f613fb6e6a66d4ec2c451fa18d8b6f9da7e0fedbd50c93129e5d7db4cfc5fc7eb73fcdf3344775e8ddd5c6a9701c',
|
|
859
|
+
'0xabe0a5fa29a3c50d670cad50b74301afdb6c69b5be1444a9966cd7bac09a8af17ca5ec0eee5c631c8a2fc5ab28517b12',
|
|
860
|
+
'0x9523a5bc93ed484254850fe5efbb6e63cbc42537c453d7bcef77ca832b7bfb2b1ecf59db8a0ea37928eae30cde21407a',
|
|
861
|
+
'0x90bacf891ad4c74107ee3abc0a5c776374654285c9a254b44d44b98cd84a7961502dd904e9729e1c10b44d5cd6b39600',
|
|
862
|
+
],
|
|
863
|
+
builder_registration: {
|
|
864
|
+
message: {
|
|
865
|
+
fee_recipient: '0x0678d7f743842a8971b188e963d00cb42d98495d',
|
|
866
|
+
gas_limit: 36000000,
|
|
867
|
+
timestamp: 1696000704,
|
|
868
|
+
pubkey: '0xa4b5fab5061fc9ef70f9d2b49a67020b18a363189087b8e8a2a496b284dff50af1e5f94ec185de2cbaaf3e5083ee49ac',
|
|
869
|
+
},
|
|
870
|
+
signature: '0xa653f58f67e88fbc2bff28b9c8ad2b1b077307a0203d93e272c41322b588682665682b89249afb394a3d16a4f38f8a380e9da882baa2799d8183a99956aaf00e399b433b46a788a4f066cbd1f366455fcaebc67426b752766bb609632215e087',
|
|
871
|
+
},
|
|
872
|
+
partial_deposit_data: [
|
|
873
|
+
{
|
|
874
|
+
pubkey: '0xa4b5fab5061fc9ef70f9d2b49a67020b18a363189087b8e8a2a496b284dff50af1e5f94ec185de2cbaaf3e5083ee49ac',
|
|
875
|
+
withdrawal_credentials: '0x0200000000000000000000000678d7f743842a8971b188e963d00cb42d98495d',
|
|
876
|
+
amount: '1000000000',
|
|
877
|
+
signature: '0xa704c1fd7ce386489a1d8e7880c0eaeaf8fae7df8cd8e121af01df9f02868692dab57d49198e7d3f39051f558b6d7209072851ca64c2d5dc9018d24c3623104763b256f2c411e89077212909f7f9af38349a34aeecfb0091ce11a2750dad1587',
|
|
878
|
+
},
|
|
879
|
+
{
|
|
880
|
+
pubkey: '0xa4b5fab5061fc9ef70f9d2b49a67020b18a363189087b8e8a2a496b284dff50af1e5f94ec185de2cbaaf3e5083ee49ac',
|
|
881
|
+
withdrawal_credentials: '0x0200000000000000000000000678d7f743842a8971b188e963d00cb42d98495d',
|
|
882
|
+
amount: '32000000000',
|
|
883
|
+
signature: '0x8a6fce6441c11ebea96eeaa6e393c4f8e7e9125a16f8aa581401d5e89d30f346ab8412498f7afe7e6319bee2af986bb508c564e11fe788d8bd749712a9303167e11bafc9af3fa56766178f2d1370b192bdfafdbf9a277903c8117d3d3b777463',
|
|
884
|
+
},
|
|
885
|
+
],
|
|
886
|
+
},
|
|
887
|
+
{
|
|
888
|
+
distributed_public_key: '0x83aaa2f21b55e2abce7f58de816b4c30887d78f58970dd75cae579a735d2f4b90dd6296117d1344773ee89ce1e1028be',
|
|
889
|
+
public_shares: [
|
|
890
|
+
'0xa7bad556974c056c1caf97fed8c97a2c1652eb8b1336188fd26909ef3856e35a280e1782eacde6918342f219af55a26b',
|
|
891
|
+
'0x8a70c5e9738a12d9b6dd6fa25f03880d3424808495d459561b03f01c82fd8231c5c378000f77f903af1611c3719ab06a',
|
|
892
|
+
'0xa425fc0bfbf980f3b3ea2c5aee31040cb46c40545d3acbfdee1b0f4fc2a1729a6ed70b431a1f2e51cafe6bbc2fd5a389',
|
|
893
|
+
'0x932535a5f6004721c15d13c97a238ad9c3b727b4eb0c505f655cf27e60c9f9fc09c1608121f127f2454b08c4b7b842d7',
|
|
894
|
+
],
|
|
895
|
+
builder_registration: {
|
|
896
|
+
message: {
|
|
897
|
+
fee_recipient: '0x0678d7f743842a8971b188e963d00cb42d98495d',
|
|
898
|
+
gas_limit: 36000000,
|
|
899
|
+
timestamp: 1696000704,
|
|
900
|
+
pubkey: '0x83aaa2f21b55e2abce7f58de816b4c30887d78f58970dd75cae579a735d2f4b90dd6296117d1344773ee89ce1e1028be',
|
|
901
|
+
},
|
|
902
|
+
signature: '0x80c050afcfc11eeb19452cb1d752a5f651e97a20a855677c99a57052beac4e0f42dcd3772bfa36cf7c473397cb62be5113412bfb39bbdcfb0e7a27eec1908bb82432b759abee785d85977f2f65cf527a01a1f1d09d61848565ff25fa0ed1c475',
|
|
903
|
+
},
|
|
904
|
+
partial_deposit_data: [
|
|
905
|
+
{
|
|
906
|
+
pubkey: '0x83aaa2f21b55e2abce7f58de816b4c30887d78f58970dd75cae579a735d2f4b90dd6296117d1344773ee89ce1e1028be',
|
|
907
|
+
withdrawal_credentials: '0x0200000000000000000000000678d7f743842a8971b188e963d00cb42d98495d',
|
|
908
|
+
amount: '1000000000',
|
|
909
|
+
signature: '0xac349ac800221919a2b82e8422ba1ccc9996a466134b6983c07ac41b053229700630f452c71f75fd95ed26887ca52e9d0d858281e73262a818160b30fd41fc6bd5f52ce0257e5ff0097a280d91bffdcd2fbf62f86d6769803f181e0c0ccd9043',
|
|
910
|
+
},
|
|
911
|
+
{
|
|
912
|
+
pubkey: '0x83aaa2f21b55e2abce7f58de816b4c30887d78f58970dd75cae579a735d2f4b90dd6296117d1344773ee89ce1e1028be',
|
|
913
|
+
withdrawal_credentials: '0x0200000000000000000000000678d7f743842a8971b188e963d00cb42d98495d',
|
|
914
|
+
amount: '32000000000',
|
|
915
|
+
signature: '0xa5febb16def6c0557900be42a2dbe9485e840429ea4987dea4a321a33821fa86da938fc6febb6aef2851016e91a0ba1002f8393ce5a7b546c7f2b905105b5e62456da3d31a7f113b2a1958fd1aacc7ce629f31130d9540344f2efc358fe3113d',
|
|
916
|
+
},
|
|
917
|
+
],
|
|
918
|
+
},
|
|
919
|
+
],
|
|
920
|
+
signature_aggregate: '0xb13e0a39e847d96ae417c9b7b0f828084f02dacd0af7ad7f8722416c418a8d044fb0ac28cfa25d8be1b9b3e59851c3f200d7ee29568e9e3b5ce087adceb9a5e3d25ed6148ccc37bb909fe34526140f4fb851a70734d44f443acbeeec077c6fa6',
|
|
921
|
+
lock_hash: '0x3b6fc91acfb03ef4e8dd549bad50e21d70abafea82a3678ef52a3804b0751d10',
|
|
922
|
+
node_signatures: [
|
|
923
|
+
'0x789d87147d04cea272cf1152560a0e632a92359018393e2588f21e90a81010a7068a46ff2944861a53dd7a4bc5335a9b0c00fa5074a6f620f48ee5f750dfef3401',
|
|
924
|
+
'0x3f2c27b0c2bfa73a9b23cef8879a277336112f4feaf43e0df72517eb45089715189a5a48d2f693d5ffe366a793bc0d76a3e3aac399e91ad9edbcab1775c17de301',
|
|
925
|
+
'0x9175f02eb9a8aed897b5ab1914fbda43fef59482592517299c892c582cae3b584aa923fa693099527fd9b3dc359ba4df85290ee040fbb3d610baf343f68cc66701',
|
|
926
|
+
'0xa13aecbd615d2a4903d9480e1178efa319db4fbfcbaef2915e666d56cb1be208772be32c42733e24a6e994f4e5e7de5591807869fb6b96438e2c3cafb4f1a5bd01',
|
|
927
|
+
],
|
|
928
|
+
};
|
|
@@ -9,7 +9,7 @@ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, ge
|
|
|
9
9
|
};
|
|
10
10
|
import { ethers, JsonRpcProvider } from 'ethers';
|
|
11
11
|
import { Client, validateClusterLock } from '../src/index';
|
|
12
|
-
import { clusterConfigV1X7, clusterConfigV1X8, clusterLockV1X6, clusterLockV1X7, clusterLockV1X8, clusterLockWithSafe, nullDepositAmountsClusterLockV1X8, } from './fixtures.js';
|
|
12
|
+
import { clusterConfigV1X7, clusterConfigV1X8, clusterLockV1X10, clusterLockV1X6, clusterLockV1X7, clusterLockV1X8, clusterLockWithSafe, nullDepositAmountsClusterLockV1X8, } 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';
|
|
@@ -185,6 +185,7 @@ describe('Cluster Client without a signer', () => {
|
|
|
185
185
|
version: 'Cluster with safe address v1.8.0',
|
|
186
186
|
clusterLock: clusterLockWithSafe,
|
|
187
187
|
},
|
|
188
|
+
{ version: 'v1.10.0', clusterLock: clusterLockV1X10 },
|
|
188
189
|
])("$version: 'should return true on verified cluster lock'", ({ clusterLock }) => __awaiter(void 0, void 0, void 0, function* () {
|
|
189
190
|
const isValidLock = yield validateClusterLock(clusterLock);
|
|
190
191
|
expect(isValidLock).toEqual(true);
|
|
@@ -4,6 +4,7 @@ import { type RewardsSplitPayload, type ClusterDefinition, type ClusterLock, typ
|
|
|
4
4
|
export * from './types.js';
|
|
5
5
|
export * from './services.js';
|
|
6
6
|
export * from './verification/signature-validator.js';
|
|
7
|
+
export * from './verification/common.js';
|
|
7
8
|
/**
|
|
8
9
|
* Obol sdk Client can be used for creating, managing and activating distributed validators.
|
|
9
10
|
*/
|
|
@@ -93,6 +93,10 @@ export interface ClusterDefinition extends ClusterPayload {
|
|
|
93
93
|
num_validators: number;
|
|
94
94
|
/** The hash of the cluster definition. */
|
|
95
95
|
definition_hash?: string;
|
|
96
|
+
/** The consensus protocol e.g qbft. */
|
|
97
|
+
consensus_protocol?: string;
|
|
98
|
+
/** The target gas limit where default is 30M. */
|
|
99
|
+
target_gas_limit?: number;
|
|
96
100
|
}
|
|
97
101
|
/**
|
|
98
102
|
* Split Recipient Keys
|
|
@@ -0,0 +1,37 @@
|
|
|
1
|
+
import { UintNumberType } from '@chainsafe/ssz/lib/type/uint';
|
|
2
|
+
import { type creatorAddressWrapperType, type creatorContainerType, type operatorAddressWrapperType, type operatorContainerType, validatorsContainerType } from './sszTypes';
|
|
3
|
+
import { ByteListType, ByteVectorType, ContainerType, ListBasicType, ListCompositeType } from '@chainsafe/ssz';
|
|
4
|
+
import { type ValueOfFields } from '@chainsafe/ssz/lib/view/container';
|
|
5
|
+
import { type ClusterDefinition, type ClusterLock } from '../types';
|
|
6
|
+
type DefinitionFieldsV1X10 = {
|
|
7
|
+
uuid: ByteListType;
|
|
8
|
+
name: ByteListType;
|
|
9
|
+
version: ByteListType;
|
|
10
|
+
timestamp: ByteListType;
|
|
11
|
+
num_validators: UintNumberType;
|
|
12
|
+
threshold: UintNumberType;
|
|
13
|
+
dkg_algorithm: ByteListType;
|
|
14
|
+
fork_version: ByteVectorType;
|
|
15
|
+
operators: ListCompositeType<typeof operatorContainerType | typeof operatorAddressWrapperType>;
|
|
16
|
+
creator: typeof creatorContainerType | typeof creatorAddressWrapperType;
|
|
17
|
+
validators: ListCompositeType<typeof validatorsContainerType>;
|
|
18
|
+
deposit_amounts: ListBasicType<UintNumberType>;
|
|
19
|
+
consensus_protocol: ByteListType;
|
|
20
|
+
target_gas_limit: UintNumberType;
|
|
21
|
+
config_hash?: ByteVectorType;
|
|
22
|
+
};
|
|
23
|
+
type DefinitionContainerTypeV1X10 = ContainerType<DefinitionFieldsV1X10>;
|
|
24
|
+
/**
|
|
25
|
+
* Returns the containerized cluster definition
|
|
26
|
+
* @param cluster ClusterDefinition to calculate the type from
|
|
27
|
+
* @returns SSZ Containerized type of cluster input
|
|
28
|
+
*/
|
|
29
|
+
export declare const clusterDefinitionContainerTypeV1X10: (configOnly: boolean) => DefinitionContainerTypeV1X10;
|
|
30
|
+
export declare const hashClusterDefinitionV1X10: (cluster: ClusterDefinition, configOnly: boolean) => ValueOfFields<DefinitionFieldsV1X10>;
|
|
31
|
+
/**
|
|
32
|
+
* @param cluster The published cluster lock
|
|
33
|
+
* @returns The lock hash in of the corresponding cluster
|
|
34
|
+
*/
|
|
35
|
+
export declare const hashClusterLockV1X10: (cluster: ClusterLock) => string;
|
|
36
|
+
export declare const verifyDVV1X10: (clusterLock: ClusterLock) => boolean;
|
|
37
|
+
export {};
|