@@ -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
158156impl 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