Skip to content

Commit 65b84d2

Browse files
committed
fix: remove relayer_address and bls key fields in consensus state
1 parent c3520af commit 65b84d2

File tree

1 file changed

+51
-58
lines changed

1 file changed

+51
-58
lines changed

crates/precompile/src/cometbft.rs

Lines changed: 51 additions & 58 deletions
Original file line numberDiff line numberDiff line change
@@ -151,8 +151,6 @@ struct ConsensusState {
151151
height: u64,
152152
next_validator_set_hash: Bytes,
153153
validators: ValidatorSet,
154-
relayer_address: Vec<Bytes>,
155-
relayer_bls_key: Vec<Bytes>,
156154
}
157155

158156
impl ConsensusState {
@@ -161,16 +159,12 @@ impl ConsensusState {
161159
height: u64,
162160
next_validator_set_hash: Bytes,
163161
validators: ValidatorSet,
164-
relayer_address: Vec<Bytes>,
165-
relayer_bls_key: Vec<Bytes>,
166162
) -> Self {
167163
Self {
168164
chain_id,
169165
height,
170166
next_validator_set_hash,
171167
validators,
172-
relayer_address,
173-
relayer_bls_key,
174168
}
175169
}
176170

@@ -295,11 +289,11 @@ impl ConsensusState {
295289
pos += VALIDATOR_VOTING_POWER_LENGTH as usize;
296290

297291
output[pos..pos + RELAYER_ADDRESS_LENGTH as usize]
298-
.copy_from_slice(self.relayer_address[i].as_ref());
292+
.copy_from_slice(validator.relayer_address.as_ref());
299293
pos += RELAYER_ADDRESS_LENGTH as usize;
300294

301295
output[pos..pos + RELAYER_BLS_KEY_LENGTH as usize]
302-
.copy_from_slice(self.relayer_bls_key[i].as_ref());
296+
.copy_from_slice(validator.bls_key.as_ref());
303297
pos += RELAYER_BLS_KEY_LENGTH as usize;
304298
}
305299

@@ -340,8 +334,6 @@ fn decode_consensus_state(input: &Bytes) -> DecodeConsensusStateResult {
340334
let validator_set_length = (input_length - minimum_length) / SINGLE_VALIDATOR_BYTES_LENGTH;
341335
let validator_set_bytes = input[pos as usize..].to_vec();
342336
let mut validator_set = Vec::with_capacity(validator_set_length as usize);
343-
let mut relayer_address_set = Vec::with_capacity(validator_set_length as usize);
344-
let mut relayer_bls_key_set = Vec::with_capacity(validator_set_length as usize);
345337
for i in 0..validator_set_length {
346338
let validator = &validator_set_bytes[i as usize * SINGLE_VALIDATOR_BYTES_LENGTH as usize
347339
..(i + 1) as usize * SINGLE_VALIDATOR_BYTES_LENGTH as usize];
@@ -376,17 +368,13 @@ fn decode_consensus_state(input: &Bytes) -> DecodeConsensusStateResult {
376368
relayer_address.to_vec(),
377369
);
378370
validator_set.push(validator_info);
379-
relayer_address_set.push(relayer_address);
380-
relayer_bls_key_set.push(relayer_bls_key);
381371
}
382372

383373
Ok(ConsensusState::new(
384374
chain_id,
385375
height,
386376
next_validator_set_hash,
387377
ValidatorSet::without_proposer(validator_set),
388-
relayer_address_set,
389-
relayer_bls_key_set,
390378
))
391379
}
392380

@@ -469,24 +457,20 @@ mod tests {
469457
"0CE856B1DC9CDCF3BF2478291CF02C62AEEB3679889E9866931BF1FB05A10EDA"
470458
));
471459
let mut validators_info = Vec::new();
472-
validators_info.push(cometbft::validator::Info::new(
460+
let bls_pub_key = Bytes::from(hex!("a60afe627fd78b19e07e07e19d446009dd53a18c6c8744176a5d851a762bbb51198e7e006f2a6ea7225661a61ecd832d"));
461+
let relayer_address = Bytes::from(hex!("B32d0723583040F3A16D1380D1e6AA874cD1bdF7"));
462+
validators_info.push(cometbft::validator::Info::new_with_bls_and_relayer(
473463
PublicKey::from_raw_ed25519(&hex!(
474464
"c3d9a1082f42ca161402f8668f8e39ec9e30092affd8d3262267ac7e248a959e"
475465
))
476466
.unwrap(),
477467
cometbft::vote::Power::from(10000_u32),
468+
bls_pub_key.to_vec(),
469+
relayer_address.to_vec(),
478470
));
479471
let validator_set = ValidatorSet::without_proposer(validators_info);
480-
let bls_pub_key = Bytes::from(hex!("a60afe627fd78b19e07e07e19d446009dd53a18c6c8744176a5d851a762bbb51198e7e006f2a6ea7225661a61ecd832d"));
481-
let relayer_address = Bytes::from(hex!("B32d0723583040F3A16D1380D1e6AA874cD1bdF7"));
482-
let cs = ConsensusState::new(
483-
chain_id,
484-
height,
485-
next_validator_set_hash,
486-
validator_set,
487-
vec![relayer_address.clone()],
488-
vec![bls_pub_key.clone()],
489-
);
472+
473+
let cs = ConsensusState::new(chain_id, height, next_validator_set_hash, validator_set);
490474

491475
let expected_output = Bytes::from(hex!("636861696e5f393030302d31323100000000000000000000000000000000000000000000000000010ce856b1dc9cdcf3bf2478291cf02c62aeeb3679889e9866931bf1fb05a10edac3d9a1082f42ca161402f8668f8e39ec9e30092affd8d3262267ac7e248a959e0000000000002710b32d0723583040f3a16d1380d1e6aa874cd1bdf7a60afe627fd78b19e07e07e19d446009dd53a18c6c8744176a5d851a762bbb51198e7e006f2a6ea7225661a61ecd832d"));
492476
let cs_bytes = cs.encode().unwrap();
@@ -499,50 +483,35 @@ mod tests {
499483
"A5F1AF4874227F1CDBE5240259A365AD86484A4255BFD65E2A0222D733FCDBC3"
500484
));
501485
let mut validators_info = Vec::new();
502-
let mut bls_pub_keys = Vec::new();
503-
let mut relayer_addresses = Vec::new();
504-
validators_info.push(cometbft::validator::Info::new(
486+
validators_info.push(cometbft::validator::Info::new_with_bls_and_relayer(
505487
PublicKey::from_raw_ed25519(&hex!(
506488
"20cc466ee9412ddd49e0fff04cdb41bade2b7622f08b6bdacac94d4de03bdb97"
507489
))
508490
.unwrap(),
509491
cometbft::vote::Power::from(10000_u32),
492+
Bytes::from(hex!("aa2d28cbcd1ea3a63479f6fb260a3d755853e6a78cfa6252584fee97b2ec84a9d572ee4a5d3bc1558bb98a4b370fb861")).to_vec(),
493+
Bytes::from(hex!("d5e63aeee6e6fa122a6a23a6e0fca87701ba1541")).to_vec(),
510494
));
511-
bls_pub_keys.push(Bytes::from(hex!("aa2d28cbcd1ea3a63479f6fb260a3d755853e6a78cfa6252584fee97b2ec84a9d572ee4a5d3bc1558bb98a4b370fb861")));
512-
relayer_addresses.push(Bytes::from(hex!(
513-
"d5e63aeee6e6fa122a6a23a6e0fca87701ba1541"
514-
)));
515-
validators_info.push(cometbft::validator::Info::new(
495+
validators_info.push(cometbft::validator::Info::new_with_bls_and_relayer(
516496
PublicKey::from_raw_ed25519(&hex!(
517497
"6b0b523ee91ad18a63d63f21e0c40a83ef15963f4260574ca5159fd90a1c5270"
518498
))
519499
.unwrap(),
520500
cometbft::vote::Power::from(10000_u32),
501+
Bytes::from(hex!("b31e74a881fc78681e3dfa440978d2b8be0708a1cbbca2c660866216975fdaf0e9038d9b7ccbf9731f43956dba7f2451")).to_vec(),
502+
Bytes::from(hex!("6fd1ceb5a48579f322605220d4325bd9ff90d5fa")).to_vec(),
521503
));
522-
bls_pub_keys.push(Bytes::from(hex!("b31e74a881fc78681e3dfa440978d2b8be0708a1cbbca2c660866216975fdaf0e9038d9b7ccbf9731f43956dba7f2451")));
523-
relayer_addresses.push(Bytes::from(hex!(
524-
"6fd1ceb5a48579f322605220d4325bd9ff90d5fa"
525-
)));
526-
validators_info.push(cometbft::validator::Info::new(
504+
validators_info.push(cometbft::validator::Info::new_with_bls_and_relayer(
527505
PublicKey::from_raw_ed25519(&hex!(
528506
"919606ae20bf5d248ee353821754bcdb456fd3950618fda3e32d3d0fb990eeda"
529507
))
530508
.unwrap(),
531509
cometbft::vote::Power::from(10000_u32),
510+
Bytes::from(hex!("b32979580ea04984a2be033599c20c7a0c9a8d121b57f94ee05f5eda5b36c38f6e354c89328b92cdd1de33b64d3a0867")).to_vec(),
511+
Bytes::from(hex!("97376a436bbf54e0f6949b57aa821a90a749920a")).to_vec(),
532512
));
533-
bls_pub_keys.push(Bytes::from(hex!("b32979580ea04984a2be033599c20c7a0c9a8d121b57f94ee05f5eda5b36c38f6e354c89328b92cdd1de33b64d3a0867")));
534-
relayer_addresses.push(Bytes::from(hex!(
535-
"97376a436bbf54e0f6949b57aa821a90a749920a"
536-
)));
537513
let validator_set = ValidatorSet::without_proposer(validators_info);
538-
let cs = ConsensusState::new(
539-
chain_id,
540-
height,
541-
next_validator_set_hash,
542-
validator_set,
543-
relayer_addresses,
544-
bls_pub_keys,
545-
);
514+
let cs = ConsensusState::new(chain_id, height, next_validator_set_hash, validator_set);
546515

547516
let expected_output = Bytes::from(hex!("636861696e5f393030302d3132310000000000000000000000000000000000000000000000000001a5f1af4874227f1cdbe5240259a365ad86484a4255bfd65e2a0222d733fcdbc320cc466ee9412ddd49e0fff04cdb41bade2b7622f08b6bdacac94d4de03bdb970000000000002710d5e63aeee6e6fa122a6a23a6e0fca87701ba1541aa2d28cbcd1ea3a63479f6fb260a3d755853e6a78cfa6252584fee97b2ec84a9d572ee4a5d3bc1558bb98a4b370fb8616b0b523ee91ad18a63d63f21e0c40a83ef15963f4260574ca5159fd90a1c527000000000000027106fd1ceb5a48579f322605220d4325bd9ff90d5fab31e74a881fc78681e3dfa440978d2b8be0708a1cbbca2c660866216975fdaf0e9038d9b7ccbf9731f43956dba7f2451919606ae20bf5d248ee353821754bcdb456fd3950618fda3e32d3d0fb990eeda000000000000271097376a436bbf54e0f6949b57aa821a90a749920ab32979580ea04984a2be033599c20c7a0c9a8d121b57f94ee05f5eda5b36c38f6e354c89328b92cdd1de33b64d3a0867"));
548517
let cs_bytes = cs.encode().unwrap();
@@ -580,8 +549,14 @@ mod tests {
580549
assert_eq!(cs.height, height);
581550
assert_eq!(cs.next_validator_set_hash, next_validator_set_hash);
582551
assert_eq!(cs.validators, validator_set);
583-
assert_eq!(cs.relayer_address[0], relayer_address);
584-
assert_eq!(cs.relayer_bls_key[0], bls_pub_key);
552+
assert_eq!(
553+
cs.validators.validators()[0].relayer_address.as_bytes(),
554+
relayer_address.to_vec()
555+
);
556+
assert_eq!(
557+
cs.validators.validators()[0].bls_key.as_bytes(),
558+
bls_pub_key.to_vec()
559+
);
585560
}
586561
{
587562
let chain_id = "chain_9000-121".to_string();
@@ -642,12 +617,30 @@ mod tests {
642617
assert_eq!(cs.height, height);
643618
assert_eq!(cs.next_validator_set_hash, next_validator_set_hash);
644619
assert_eq!(cs.validators, validator_set);
645-
assert_eq!(cs.relayer_address[0], relayer_addresses[0]);
646-
assert_eq!(cs.relayer_bls_key[0], bls_pub_keys[0]);
647-
assert_eq!(cs.relayer_address[1], relayer_addresses[1]);
648-
assert_eq!(cs.relayer_bls_key[1], bls_pub_keys[1]);
649-
assert_eq!(cs.relayer_address[2], relayer_addresses[2]);
650-
assert_eq!(cs.relayer_bls_key[2], bls_pub_keys[2]);
620+
assert_eq!(
621+
cs.validators.validators()[0].relayer_address.as_bytes(),
622+
relayer_addresses[0].to_vec()
623+
);
624+
assert_eq!(
625+
cs.validators.validators()[0].bls_key.as_bytes(),
626+
bls_pub_keys[0].to_vec()
627+
);
628+
assert_eq!(
629+
cs.validators.validators()[1].relayer_address.as_bytes(),
630+
relayer_addresses[1].to_vec()
631+
);
632+
assert_eq!(
633+
cs.validators.validators()[1].bls_key.as_bytes(),
634+
bls_pub_keys[1].to_vec()
635+
);
636+
assert_eq!(
637+
cs.validators.validators()[2].relayer_address.as_bytes(),
638+
relayer_addresses[2].to_vec()
639+
);
640+
assert_eq!(
641+
cs.validators.validators()[2].bls_key.as_bytes(),
642+
bls_pub_keys[2].to_vec()
643+
);
651644
}
652645
}
653646

0 commit comments

Comments
 (0)